From 0a2c4b4f0f6cd593133ffc50e57e2d03519a1b2f Mon Sep 17 00:00:00 2001 From: LiJia Date: Wed, 23 Aug 2023 08:48:18 +0800 Subject: [PATCH 1/6] add static link to ta-lib when build --- .gitignore | 1 + Makefile | 12 ++++++++++++ setup.py | 13 ++++++++++++- 3 files changed, 25 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 49ddb78e1..539c1abc2 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ docs/.tadoc.org.html *.pyc build/ dist/ +c-ta-lib/ *.so .* *~ diff --git a/Makefile b/Makefile index 7717a7fce..735ce7303 100644 --- a/Makefile +++ b/Makefile @@ -3,9 +3,15 @@ build: python3 setup.py build_ext --inplace +build_static: + TA_LINK_STATIC=1 TA_INCLUDE_PATH=c-ta-lib/include TA_LIBRARY_PATH=c-ta-lib/lib python3 setup.py build_ext --inplace + install: python3 setup.py install +install_static: + TA_LINK_STATIC=1 TA_INCLUDE_PATH=c-ta-lib/include TA_LIBRARY_PATH=c-ta-lib/lib python3 setup.py install + talib/_func.pxi: tools/generate_func.py python3 tools/generate_func.py > talib/_func.pxi @@ -28,3 +34,9 @@ test: build sdist: python3 setup.py sdist --formats=gztar,zip + +sdist_static: + TA_LINK_STATIC=1 TA_INCLUDE_PATH=c-ta-lib/include TA_LIBRARY_PATH=c-ta-lib/lib python3 setup.py sdist --formats=gztar,zip + +talib_static: + tools/build_talib_from_source.bash ${PWD}/c-ta-lib diff --git a/setup.py b/setup.py index 0f5fe17d7..65df9e867 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,7 @@ requires = {"requires": ["numpy"]} lib_talib_name = 'ta_lib' # the underlying C library's name +lib_talib_static_lib = '' # static C library, such as '/usr/lib/libta_lib.a' platform_supported = False @@ -57,6 +58,15 @@ paths = os.environ['TA_LIBRARY_PATH'].split(os.pathsep) library_dirs.extend(path for path in paths if path) +if 'TA_LINK_STATIC' in os.environ: + for base in library_dirs: + fname = f'{base}/libta_lib.a' + if os.path.exists(fname): + lib_talib_static_lib = fname + lib_talib_name = '' + break + + if not platform_supported: raise NotImplementedError(sys.platform) @@ -134,7 +144,8 @@ def build_extensions(self): ['talib/_ta_lib.pyx' if has_cython else 'talib/_ta_lib.c'], include_dirs=include_dirs, library_dirs=library_dirs, - libraries=[lib_talib_name], + libraries=[lib_talib_name] if len(lib_talib_name) > 0 else [], + extra_objects=[lib_talib_static_lib] if len(lib_talib_static_lib) > 0 else [], runtime_library_dirs=[] if sys.platform == 'win32' else library_dirs) ] From 0a0d4b7212992e83676d251ace1f22c9d77b4243 Mon Sep 17 00:00:00 2001 From: elsejj Date: Wed, 23 Aug 2023 09:25:04 +0800 Subject: [PATCH 2/6] Update README.md for static link --- README.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/README.md b/README.md index 079bd5719..c50ba7c7c 100644 --- a/README.md +++ b/README.md @@ -130,6 +130,17 @@ $ sudo make install Note: if your directory path includes spaces, the installation will probably fail with ``No such file or directory`` errors. +###### Link static ta-lib in Linux + +Linux build can link `ta-lib` static, so there is no need to install `ta-lib` global, may be easier to distribute. + +1. build `ta-lib` to current dir, `make talib_static`, it download`ta-lib` and build it to `c-ta-lib` of current dir. +2. install static link version of ta-lib-python, `make install_static` + +A bool environment variables `TA_LINK_STATIC` is used to tell `setup.py` do static link `ta-lib`, it find `libta_lib.a` +in all `library_dirs`, when found, it set `lib_talib_name` with empty str to disable dynamic link. + + ### Troubleshooting If you get a warning that looks like this: From 2d81335d97d77e533cf967676bc6fd3a4479bcd3 Mon Sep 17 00:00:00 2001 From: LiJia Date: Mon, 4 Dec 2023 13:04:53 +0800 Subject: [PATCH 3/6] add wheel dist --- Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Makefile b/Makefile index 735ce7303..e339e537b 100644 --- a/Makefile +++ b/Makefile @@ -40,3 +40,6 @@ sdist_static: talib_static: tools/build_talib_from_source.bash ${PWD}/c-ta-lib + +wheel_static: + TA_LINK_STATIC=1 TA_INCLUDE_PATH=c-ta-lib/include TA_LIBRARY_PATH=c-ta-lib/lib python3 setup.py bdist_wheel From bb9dbd5eff63841ae071d0eb7e881d748b195086 Mon Sep 17 00:00:00 2001 From: LiJia Date: Wed, 16 Oct 2024 17:03:54 +0800 Subject: [PATCH 4/6] numpy 2.x --- requirements.txt | 2 +- setup.py | 1 + talib/_func.pxi | 6 +- talib/_stream.pxi | 5248 --- talib/_ta_lib.c | 77440 ++++++++++++++++----------------------- tools/generate_func.py | 6 +- 6 files changed, 31190 insertions(+), 51513 deletions(-) diff --git a/requirements.txt b/requirements.txt index 6d39d4295..70bf4e3ba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,2 +1,2 @@ -numpy<2.0.0 +numpy Cython diff --git a/setup.py b/setup.py index 890efadab..60a1ee91d 100644 --- a/setup.py +++ b/setup.py @@ -140,6 +140,7 @@ def build_extensions(self): Extension( 'talib._ta_lib', ['talib/_ta_lib.pyx' if has_cython else 'talib/_ta_lib.c'], + define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')], include_dirs=include_dirs, library_dirs=library_dirs, libraries=[lib_talib_name] if len(lib_talib_name) > 0 else [], diff --git a/talib/_func.pxi b/talib/_func.pxi index 5d60d7dd3..e3485b9e5 100644 --- a/talib/_func.pxi +++ b/talib/_func.pxi @@ -22,7 +22,7 @@ cdef np.ndarray check_array(np.ndarray real): raise Exception("input array type is not double") if real.ndim != 1: raise Exception("input array has wrong dimensions") - if not (PyArray_FLAGS(real) & np.NPY_C_CONTIGUOUS): + if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): real = PyArray_GETCONTIGUOUS(real) return real @@ -122,7 +122,7 @@ cdef np.ndarray make_double_array(np.npy_intp length, int lookback): cdef: np.ndarray outreal double* outreal_data - outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, np.NPY_DEFAULT) + outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, 0) outreal_data = outreal.data for i from 0 <= i < min(lookback, length): outreal_data[i] = NaN @@ -132,7 +132,7 @@ cdef np.ndarray make_int_array(np.npy_intp length, int lookback): cdef: np.ndarray outinteger int* outinteger_data - outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, np.NPY_DEFAULT) + outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, 0) outinteger_data = outinteger.data for i from 0 <= i < min(lookback, length): outinteger_data[i] = 0 diff --git a/talib/_stream.pxi b/talib/_stream.pxi index 595f4a0c7..e69de29bb 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -1,5248 +0,0 @@ -cimport numpy as np -from cython import boundscheck, wraparound -cimport _ta_lib as lib -from _ta_lib cimport TA_RetCode -# NOTE: _ta_check_success, NaN are defined in common.pxi - -np.import_array() # Initialize the NumPy C API - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ACOS( np.ndarray real not None ): - """ ACOS(real) - - Vector Trigonometric ACos (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ACOS", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): - """ AD(high, low, close, volume) - - Chaikin A/D Line (Volume Indicators) - - Inputs: - prices: ['high', 'low', 'close', 'volume'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): - """ ADD(real0, real1) - - Vector Arithmetic Add (Math Operators) - - Inputs: - real0: (any ndarray) - real1: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADOSC( 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 ): - """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) - - Chaikin A/D Oscillator (Volume Indicators) - - Inputs: - prices: ['high', 'low', 'close', 'volume'] - Parameters: - fastperiod: 3 - slowperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ ADX(high, low, close[, timeperiod=?]) - - Average Directional Movement Index (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ADX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ ADXR(high, low, close[, timeperiod=?]) - - Average Directional Movement Index Rating (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): - """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) - - Absolute Price Oscillator (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - fastperiod: 12 - slowperiod: 26 - matype: 0 (Simple Moving Average) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_APO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - """ AROON(high, low[, timeperiod=?]) - - Aroon (Momentum Indicators) - - Inputs: - prices: ['high', 'low'] - Parameters: - timeperiod: 14 - Outputs: - aroondown - aroonup - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outaroondown - double outaroonup - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outaroondown = NaN - outaroonup = NaN - retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) - _ta_check_success("TA_AROON", retCode) - return outaroondown , outaroonup - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - """ AROONOSC(high, low[, timeperiod=?]) - - Aroon Oscillator (Momentum Indicators) - - Inputs: - prices: ['high', 'low'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_ASIN( np.ndarray real not None ): - """ ASIN(real) - - Vector Trigonometric ASin (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ASIN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ATAN( np.ndarray real not None ): - """ ATAN(real) - - Vector Trigonometric ATan (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ATAN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ ATR(high, low, close[, timeperiod=?]) - - Average True Range (Volatility Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ATR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ AVGPRICE(open, high, low, close) - - Average Price (Price Transform) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outreal = NaN - retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_AVGPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): - """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) - - Bollinger Bands (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 5 - nbdevup: 2.0 - nbdevdn: 2.0 - matype: 0 (Simple Moving Average) - Outputs: - upperband - middleband - lowerband - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outrealupperband - double outrealmiddleband - double outreallowerband - real = check_array(real) - real_data = real.data - length = real.shape[0] - outrealupperband = NaN - outrealmiddleband = NaN - outreallowerband = NaN - retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) - _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 stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): - """ BETA(real0, real1[, timeperiod=?]) - - Beta (Statistic Functions) - - Inputs: - real0: (any ndarray) - real1: (any ndarray) - Parameters: - timeperiod: 5 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_BETA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ BOP(open, high, low, close) - - Balance Of Power (Momentum Indicators) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outreal = NaN - retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_BOP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ CCI(high, low, close[, timeperiod=?]) - - Commodity Channel Index (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CCI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL2CROWS(open, high, low, close) - - Two Crows (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL2CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3BLACKCROWS(open, high, low, close) - - Three Black Crows (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3BLACKCROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3INSIDE(open, high, low, close) - - Three Inside Up/Down (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3INSIDE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3LINESTRIKE(open, high, low, close) - - Three-Line Strike (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3LINESTRIKE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3OUTSIDE(open, high, low, close) - - Three Outside Up/Down (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3OUTSIDE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3STARSINSOUTH(open, high, low, close) - - Three Stars In The South (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3STARSINSOUTH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDL3WHITESOLDIERS(open, high, low, close) - - Three Advancing White Soldiers (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) - - Abandoned Baby (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.3 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLABANDONEDBABY", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLADVANCEBLOCK(open, high, low, close) - - Advance Block (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLADVANCEBLOCK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLBELTHOLD(open, high, low, close) - - Belt-hold (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLBELTHOLD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLBREAKAWAY(open, high, low, close) - - Breakaway (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLBREAKAWAY", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLCLOSINGMARUBOZU(open, high, low, close) - - Closing Marubozu (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLCONCEALBABYSWALL(open, high, low, close) - - Concealing Baby Swallow (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLCOUNTERATTACK(open, high, low, close) - - Counterattack (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLCOUNTERATTACK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): - """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) - - Dark Cloud Cover (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.5 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLDOJI(open, high, low, close) - - Doji (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLDOJISTAR(open, high, low, close) - - Doji Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLDRAGONFLYDOJI(open, high, low, close) - - Dragonfly Doji (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLENGULFING(open, high, low, close) - - Engulfing Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLENGULFING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) - - Evening Doji Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.3 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) - - Evening Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.3 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLEVENINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLGAPSIDESIDEWHITE(open, high, low, close) - - Up/Down-gap side-by-side white lines (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLGRAVESTONEDOJI(open, high, low, close) - - Gravestone Doji (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHAMMER(open, high, low, close) - - Hammer (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHAMMER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHANGINGMAN(open, high, low, close) - - Hanging Man (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHANGINGMAN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHARAMI(open, high, low, close) - - Harami Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHARAMI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHARAMICROSS(open, high, low, close) - - Harami Cross Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHARAMICROSS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHIGHWAVE(open, high, low, close) - - High-Wave Candle (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIGHWAVE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHIKKAKE(open, high, low, close) - - Hikkake Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIKKAKE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHIKKAKEMOD(open, high, low, close) - - Modified Hikkake Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHIKKAKEMOD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLHOMINGPIGEON(open, high, low, close) - - Homing Pigeon (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLHOMINGPIGEON", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLIDENTICAL3CROWS(open, high, low, close) - - Identical Three Crows (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLINNECK(open, high, low, close) - - In-Neck Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLINNECK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLINVERTEDHAMMER(open, high, low, close) - - Inverted Hammer (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLKICKING(open, high, low, close) - - Kicking (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLKICKING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLKICKINGBYLENGTH(open, high, low, close) - - Kicking - bull/bear determined by the longer marubozu (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLLADDERBOTTOM(open, high, low, close) - - Ladder Bottom (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLADDERBOTTOM", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLLONGLEGGEDDOJI(open, high, low, close) - - Long Legged Doji (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLLONGLINE(open, high, low, close) - - Long Line Candle (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLLONGLINE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLMARUBOZU(open, high, low, close) - - Marubozu (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMARUBOZU", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLMATCHINGLOW(open, high, low, close) - - Matching Low (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMATCHINGLOW", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): - """ CDLMATHOLD(open, high, low, close[, penetration=?]) - - Mat Hold (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.5 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMATHOLD", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) - - Morning Doji Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.3 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) - - Morning Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Parameters: - penetration: 0.3 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLMORNINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLONNECK(open, high, low, close) - - On-Neck Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLONNECK", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLPIERCING(open, high, low, close) - - Piercing Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLPIERCING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLRICKSHAWMAN(open, high, low, close) - - Rickshaw Man (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLRICKSHAWMAN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLRISEFALL3METHODS(open, high, low, close) - - Rising/Falling Three Methods (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSEPARATINGLINES(open, high, low, close) - - Separating Lines (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSEPARATINGLINES", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSHOOTINGSTAR(open, high, low, close) - - Shooting Star (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSHORTLINE(open, high, low, close) - - Short Line Candle (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSHORTLINE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSPINNINGTOP(open, high, low, close) - - Spinning Top (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSPINNINGTOP", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSTALLEDPATTERN(open, high, low, close) - - Stalled Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLSTICKSANDWICH(open, high, low, close) - - Stick Sandwich (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLSTICKSANDWICH", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLTAKURI(open, high, low, close) - - Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTAKURI", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLTASUKIGAP(open, high, low, close) - - Tasuki Gap (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTASUKIGAP", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLTHRUSTING(open, high, low, close) - - Thrusting Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTHRUSTING", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLTRISTAR(open, high, low, close) - - Tristar Pattern (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLTRISTAR", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLUNIQUE3RIVER(open, high, low, close) - - Unique 3 River (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLUPSIDEGAP2CROWS(open, high, low, close) - - Upside Gap Two Crows (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ CDLXSIDEGAP3METHODS(open, high, low, close) - - Upside/Downside Gap Three Methods (Pattern Recognition) - - Inputs: - prices: ['open', 'high', 'low', 'close'] - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* open_data - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - int outinteger - open = check_array(open) - open_data = open.data - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length4(open, high, low, close) - outinteger = 0 - retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CEIL( np.ndarray real not None ): - """ CEIL(real) - - Vector Ceil (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): - """ CMO(real[, timeperiod=?]) - - Chande Momentum Oscillator (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CMO", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): - """ CORREL(real0, real1[, timeperiod=?]) - - Pearson's Correlation Coefficient (r) (Statistic Functions) - - Inputs: - real0: (any ndarray) - real1: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_CORREL", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_COS( np.ndarray real not None ): - """ COS(real) - - Vector Trigonometric Cos (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_COS", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_COSH( np.ndarray real not None ): - """ COSH(real) - - Vector Trigonometric Cosh (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_COSH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ DEMA(real[, timeperiod=?]) - - Double Exponential Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DEMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): - """ DIV(real0, real1) - - Vector Arithmetic Div (Math Operators) - - Inputs: - real0: (any ndarray) - real1: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DIV", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ DX(high, low, close[, timeperiod=?]) - - Directional Movement Index (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_DX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ EMA(real[, timeperiod=?]) - - Exponential Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_EXP( np.ndarray real not None ): - """ EXP(real) - - Vector Arithmetic Exp (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_FLOOR( np.ndarray real not None ): - """ FLOOR(real) - - Vector Floor (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_FLOOR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_DCPERIOD( np.ndarray real not None ): - """ HT_DCPERIOD(real) - - Hilbert Transform - Dominant Cycle Period (Cycle Indicators) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_DCPERIOD", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_DCPHASE( np.ndarray real not None ): - """ HT_DCPHASE(real) - - Hilbert Transform - Dominant Cycle Phase (Cycle Indicators) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_DCPHASE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_PHASOR( np.ndarray real not None ): - """ HT_PHASOR(real) - - Hilbert Transform - Phasor Components (Cycle Indicators) - - Inputs: - real: (any ndarray) - Outputs: - inphase - quadrature - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outinphase - double outquadrature - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinphase = NaN - outquadrature = NaN - retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) - _ta_check_success("TA_HT_PHASOR", retCode) - return outinphase , outquadrature - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_SINE( np.ndarray real not None ): - """ HT_SINE(real) - - Hilbert Transform - SineWave (Cycle Indicators) - - Inputs: - real: (any ndarray) - Outputs: - sine - leadsine - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outsine - double outleadsine - real = check_array(real) - real_data = real.data - length = real.shape[0] - outsine = NaN - outleadsine = NaN - retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) - _ta_check_success("TA_HT_SINE", retCode) - return outsine , outleadsine - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_TRENDLINE( np.ndarray real not None ): - """ HT_TRENDLINE(real) - - Hilbert Transform - Instantaneous Trendline (Overlap Studies) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_HT_TRENDLINE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_HT_TRENDMODE( np.ndarray real not None ): - """ HT_TRENDMODE(real) - - Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators) - - Inputs: - real: (any ndarray) - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_HT_TRENDMODE", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_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 - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): - """ LINEARREG(real[, timeperiod=?]) - - Linear Regression (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): - """ LINEARREG_ANGLE(real[, timeperiod=?]) - - Linear Regression Angle (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_ANGLE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): - """ LINEARREG_INTERCEPT(real[, timeperiod=?]) - - Linear Regression Intercept (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): - """ LINEARREG_SLOPE(real[, timeperiod=?]) - - Linear Regression Slope (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LINEARREG_SLOPE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LN( np.ndarray real not None ): - """ LN(real) - - Vector Log Natural (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_LOG10( np.ndarray real not None ): - """ LOG10(real) - - Vector Log10 (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_LOG10", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): - """ MA(real[, timeperiod=?, matype=?]) - - Moving average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - matype: 0 (Simple Moving Average) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): - """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) - - Moving Average Convergence/Divergence (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - fastperiod: 12 - slowperiod: 26 - signalperiod: 9 - Outputs: - macd - macdsignal - macdhist - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACD", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): - """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) - - MACD with controllable MA type (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - fastperiod: 12 - fastmatype: 0 - slowperiod: 26 - slowmatype: 0 - signalperiod: 9 - signalmatype: 0 - Outputs: - macd - macdsignal - macdhist - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACDEXT", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): - """ MACDFIX(real[, signalperiod=?]) - - Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - signalperiod: 9 - Outputs: - macd - macdsignal - macdhist - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmacd - double outmacdsignal - double outmacdhist - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmacd = NaN - outmacdsignal = NaN - outmacdhist = NaN - retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) - _ta_check_success("TA_MACDFIX", retCode) - return outmacd , outmacdsignal , outmacdhist - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): - """ MAMA(real[, fastlimit=?, slowlimit=?]) - - MESA Adaptive Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - fastlimit: 0.5 - slowlimit: 0.05 - Outputs: - mama - fama - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmama - double outfama - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmama = NaN - outfama = NaN - retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) - _ta_check_success("TA_MAMA", retCode) - return outmama , outfama - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): - """ 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 - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - double* periods_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - periods = check_array(periods) - periods_data = periods.data - length = check_length2(real, periods) - outreal = NaN - retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MAVP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): - """ MAX(real[, timeperiod=?]) - - Highest value over a specified period (Math Operators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MAX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): - """ MAXINDEX(real[, timeperiod=?]) - - Index of highest value over a specified period (Math Operators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_MAXINDEX", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): - """ MEDPRICE(high, low) - - Median Price (Price Transform) - - Inputs: - prices: ['high', 'low'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_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 - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - double* volume_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - volume = check_array(volume) - volume_data = volume.data - length = check_length4(high, low, close, volume) - outreal = NaN - retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): - """ MIDPOINT(real[, timeperiod=?]) - - MidPoint over period (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIDPOINT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - """ MIDPRICE(high, low[, timeperiod=?]) - - Midpoint Price over period (Overlap Studies) - - Inputs: - prices: ['high', 'low'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIDPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): - """ MIN(real[, timeperiod=?]) - - Lowest value over a specified period (Math Operators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MIN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): - """ MININDEX(real[, timeperiod=?]) - - Index of lowest value over a specified period (Math Operators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - integer (values are -100, 0 or 100) - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outinteger - real = check_array(real) - real_data = real.data - length = real.shape[0] - outinteger = 0 - retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) - _ta_check_success("TA_MININDEX", retCode) - return outinteger - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): - """ MINMAX(real[, timeperiod=?]) - - Lowest and highest values over a specified period (Math Operators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - min - max - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outmin - double outmax - real = check_array(real) - real_data = real.data - length = real.shape[0] - outmin = NaN - outmax = NaN - retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) - _ta_check_success("TA_MINMAX", retCode) - return outmin , outmax - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): - """ 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 - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - int outminidx - int outmaxidx - real = check_array(real) - real_data = real.data - length = real.shape[0] - outminidx = 0 - outmaxidx = 0 - retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) - _ta_check_success("TA_MINMAXINDEX", retCode) - return outminidx , outmaxidx - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ MINUS_DI(high, low, close[, timeperiod=?]) - - Minus Directional Indicator (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MINUS_DI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - """ MINUS_DM(high, low[, timeperiod=?]) - - Minus Directional Movement (Momentum Indicators) - - Inputs: - prices: ['high', 'low'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MINUS_DM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): - """ MOM(real[, timeperiod=?]) - - Momentum (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MOM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): - """ MULT(real0, real1) - - Vector Arithmetic Mult (Math Operators) - - Inputs: - real0: (any ndarray) - real1: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_MULT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ NATR(high, low, close[, timeperiod=?]) - - Normalized Average True Range (Volatility Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_NATR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): - """ OBV(real, volume) - - On Balance Volume (Volume Indicators) - - Inputs: - real: (any ndarray) - prices: ['volume'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - double* volume_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - volume = check_array(volume) - volume_data = volume.data - length = check_length2(real, volume) - outreal = NaN - retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ PLUS_DI(high, low, close[, timeperiod=?]) - - Plus Directional Indicator (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PLUS_DI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - """ PLUS_DM(high, low[, timeperiod=?]) - - Plus Directional Movement (Momentum Indicators) - - Inputs: - prices: ['high', 'low'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_PLUS_DM", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): - """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) - - Percentage Price Oscillator (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - fastperiod: 12 - slowperiod: 26 - matype: 0 (Simple Moving Average) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) - _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 stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): - """ ROC(real[, timeperiod=?]) - - Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): - """ ROCP(real[, timeperiod=?]) - - Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROCP", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): - """ ROCR(real[, timeperiod=?]) - - Rate of change ratio: (real/prevPrice) (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ROCR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): - """ ROCR100(real[, timeperiod=?]) - - Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 10 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): - """ RSI(real[, timeperiod=?]) - - Relative Strength Index (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_RSI", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): - """ SAR(high, low[, acceleration=?, maximum=?]) - - Parabolic SAR (Overlap Studies) - - Inputs: - prices: ['high', 'low'] - Parameters: - acceleration: 0.02 - maximum: 0.2 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SAR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): - """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) - - Parabolic SAR - Extended (Overlap Studies) - - Inputs: - prices: ['high', 'low'] - 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 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - length = check_length2(high, low) - outreal = NaN - retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SAREXT", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SIN( np.ndarray real not None ): - """ SIN(real) - - Vector Trigonometric Sin (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_SINH( np.ndarray real not None ): - """ SINH(real) - - Vector Trigonometric Sinh (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SINH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ SMA(real[, timeperiod=?]) - - Simple Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_SMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_SQRT( np.ndarray real not None ): - """ SQRT(real) - - Vector Square Root (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): - """ STDDEV(real[, timeperiod=?, nbdev=?]) - - Standard Deviation (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 5 - nbdev: 1.0 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) - _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 stream_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 - slowd_period: 3 - slowd_matype: 0 - Outputs: - slowk - slowd - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outslowk - double outslowd - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outslowk = NaN - outslowd = NaN - retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) - _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 stream_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 - Outputs: - fastk - fastd - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outfastk - double outfastd - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outfastk = NaN - outfastd = NaN - retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) - _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 stream_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 - Outputs: - fastk - fastd - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outfastk - double outfastd - real = check_array(real) - real_data = real.data - length = real.shape[0] - outfastk = NaN - outfastd = NaN - retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) - _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 stream_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 - TA_RetCode retCode - double* real0_data - double* real1_data - int outbegidx - int outnbelement - double outreal - real0 = check_array(real0) - real0_data = real0.data - real1 = check_array(real1) - real1_data = real1.data - length = check_length2(real0, real1) - outreal = NaN - retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) - _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 stream_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 - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _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 stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): - """ T3(real[, timeperiod=?, vfactor=?]) - - Triple Exponential Moving Average (T3) (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 5 - vfactor: 0.7 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_T3", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TAN( np.ndarray real not None ): - """ TAN(real) - - Vector Trigonometric Tan (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TAN", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TANH( np.ndarray real not None ): - """ TANH(real) - - Vector Trigonometric Tanh (Math Transform) - - Inputs: - real: (any ndarray) - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TANH", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ TEMA(real[, timeperiod=?]) - - Triple Exponential Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TEMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ TRANGE(high, low, close) - - True Range (Volatility Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRANGE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ TRIMA(real[, timeperiod=?]) - - Triangular Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRIMA", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): - """ TRIX(real[, timeperiod=?]) - - 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TRIX", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): - """ TSF(real[, timeperiod=?]) - - Time Series Forecast (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TSF", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ TYPPRICE(high, low, close) - - Typical Price (Price Transform) - - Inputs: - prices: ['high', 'low', 'close'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_TYPPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): - """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) - - Ultimate Oscillator (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod1: 7 - timeperiod2: 14 - timeperiod3: 28 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_ULTOSC", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): - """ VAR(real[, timeperiod=?, nbdev=?]) - - Variance (Statistic Functions) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 5 - nbdev: 1.0 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_VAR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - """ WCLPRICE(high, low, close) - - Weighted Close Price (Price Transform) - - Inputs: - prices: ['high', 'low', 'close'] - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WCLPRICE", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - """ WILLR(high, low, close[, timeperiod=?]) - - Williams' %R (Momentum Indicators) - - Inputs: - prices: ['high', 'low', 'close'] - Parameters: - timeperiod: 14 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* high_data - double* low_data - double* close_data - int outbegidx - int outnbelement - double outreal - high = check_array(high) - high_data = high.data - low = check_array(low) - low_data = low.data - close = check_array(close) - close_data = close.data - length = check_length3(high, low, close) - outreal = NaN - retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WILLR", retCode) - return outreal - -@wraparound(False) # turn off relative indexing from end of lists -@boundscheck(False) # turn off bounds-checking for entire function -def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): - """ WMA(real[, timeperiod=?]) - - Weighted Moving Average (Overlap Studies) - - Inputs: - real: (any ndarray) - Parameters: - timeperiod: 30 - Outputs: - real - """ - cdef: - np.npy_intp length - TA_RetCode retCode - double* real_data - int outbegidx - int outnbelement - double outreal - real = check_array(real) - real_data = real.data - length = real.shape[0] - outreal = NaN - retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) - _ta_check_success("TA_WMA", retCode) - return outreal - diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index 5ea4e321c..dd34fda67 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -1,5 +1,62 @@ /* Generated by Cython 3.0.11 */ +/* BEGIN: Cython Metadata +{ + "distutils": { + "define_macros": [ + [ + "NPY_NO_DEPRECATED_API", + "NPY_1_7_API_VERSION" + ] + ], + "depends": [ + "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayobject.h", + "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", + "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", + "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", + "/home/jia/.virtualenvs/pydata/lib/python3.12/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", + "/home/jia/.virtualenvs/pydata/lib/python3.12/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 */ @@ -1219,14 +1276,10 @@ static CYTHON_INLINE float __PYX_NAN() { #define __PYX_HAVE__talib___ta_lib #define __PYX_HAVE_API__talib___ta_lib /* Early includes */ -#if defined(WIN32) || defined(MS_WINDOWS) -#include "ta_libc.h" -#else #include "ta-lib/ta_defs.h" #include "ta-lib/ta_common.h" #include "ta-lib/ta_abstract.h" #include "ta-lib/ta_func.h" -#endif #include #include @@ -1511,7 +1564,6 @@ static const char *__pyx_f[] = { "talib/_abstract.pxi", "__init__.cython-30.pxd", "talib/_func.pxi", - "talib/_stream.pxi", "talib/_ta_lib.pyx", "type.pxd", }; @@ -1523,42 +1575,157 @@ static const char *__pyx_f[] = { /* #### Code section: numeric_typedefs ### */ +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":769 + * # in Cython to enable them only on the right systems. + * + * ctypedef npy_int8 int8_t # <<<<<<<<<<<<<< + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t + */ typedef npy_int8 __pyx_t_5numpy_int8_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":770 + * + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t # <<<<<<<<<<<<<< + * ctypedef npy_int32 int32_t + * ctypedef npy_int64 int64_t + */ typedef npy_int16 __pyx_t_5numpy_int16_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":771 + * ctypedef npy_int8 int8_t + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t # <<<<<<<<<<<<<< + * ctypedef npy_int64 int64_t + * #ctypedef npy_int96 int96_t + */ typedef npy_int32 __pyx_t_5numpy_int32_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":772 + * ctypedef npy_int16 int16_t + * ctypedef npy_int32 int32_t + * ctypedef npy_int64 int64_t # <<<<<<<<<<<<<< + * #ctypedef npy_int96 int96_t + * #ctypedef npy_int128 int128_t + */ typedef npy_int64 __pyx_t_5numpy_int64_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":776 + * #ctypedef npy_int128 int128_t + * + * ctypedef npy_uint8 uint8_t # <<<<<<<<<<<<<< + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t + */ typedef npy_uint8 __pyx_t_5numpy_uint8_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":777 + * + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t # <<<<<<<<<<<<<< + * ctypedef npy_uint32 uint32_t + * ctypedef npy_uint64 uint64_t + */ typedef npy_uint16 __pyx_t_5numpy_uint16_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":778 + * ctypedef npy_uint8 uint8_t + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t # <<<<<<<<<<<<<< + * ctypedef npy_uint64 uint64_t + * #ctypedef npy_uint96 uint96_t + */ typedef npy_uint32 __pyx_t_5numpy_uint32_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":779 + * ctypedef npy_uint16 uint16_t + * ctypedef npy_uint32 uint32_t + * ctypedef npy_uint64 uint64_t # <<<<<<<<<<<<<< + * #ctypedef npy_uint96 uint96_t + * #ctypedef npy_uint128 uint128_t + */ typedef npy_uint64 __pyx_t_5numpy_uint64_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":783 + * #ctypedef npy_uint128 uint128_t + * + * ctypedef npy_float32 float32_t # <<<<<<<<<<<<<< + * ctypedef npy_float64 float64_t + * #ctypedef npy_float80 float80_t + */ typedef npy_float32 __pyx_t_5numpy_float32_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":784 + * + * ctypedef npy_float32 float32_t + * ctypedef npy_float64 float64_t # <<<<<<<<<<<<<< + * #ctypedef npy_float80 float80_t + * #ctypedef npy_float128 float128_t + */ typedef npy_float64 __pyx_t_5numpy_float64_t; -typedef npy_long __pyx_t_5numpy_int_t; - +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":791 + * ctypedef double complex complex128_t + * + * ctypedef npy_longlong longlong_t # <<<<<<<<<<<<<< + * ctypedef npy_ulonglong ulonglong_t + * + */ typedef npy_longlong __pyx_t_5numpy_longlong_t; -typedef npy_ulong __pyx_t_5numpy_uint_t; - +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":792 + * + * ctypedef npy_longlong longlong_t + * ctypedef npy_ulonglong ulonglong_t # <<<<<<<<<<<<<< + * + * ctypedef npy_intp intp_t + */ typedef npy_ulonglong __pyx_t_5numpy_ulonglong_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":794 + * ctypedef npy_ulonglong ulonglong_t + * + * ctypedef npy_intp intp_t # <<<<<<<<<<<<<< + * ctypedef npy_uintp uintp_t + * + */ typedef npy_intp __pyx_t_5numpy_intp_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":795 + * + * ctypedef npy_intp intp_t + * ctypedef npy_uintp uintp_t # <<<<<<<<<<<<<< + * + * ctypedef npy_double float_t + */ typedef npy_uintp __pyx_t_5numpy_uintp_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":797 + * ctypedef npy_uintp uintp_t + * + * ctypedef npy_double float_t # <<<<<<<<<<<<<< + * ctypedef npy_double double_t + * ctypedef npy_longdouble longdouble_t + */ typedef npy_double __pyx_t_5numpy_float_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":798 + * + * ctypedef npy_double float_t + * ctypedef npy_double double_t # <<<<<<<<<<<<<< + * ctypedef npy_longdouble longdouble_t + * + */ typedef npy_double __pyx_t_5numpy_double_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":799 + * ctypedef npy_double float_t + * ctypedef npy_double double_t + * ctypedef npy_longdouble longdouble_t # <<<<<<<<<<<<<< + * + * ctypedef float complex cfloat_t + */ typedef npy_longdouble __pyx_t_5numpy_longdouble_t; /* #### Code section: complex_type_declarations ### */ /* Declarations.proto */ @@ -1585,17 +1752,39 @@ static CYTHON_INLINE __pyx_t_float_complex __pyx_t_float_complex_from_parts(floa #endif static CYTHON_INLINE __pyx_t_double_complex __pyx_t_double_complex_from_parts(double, double); +/* Declarations.proto */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #ifdef __cplusplus + typedef ::std::complex< long double > __pyx_t_long_double_complex; + #else + typedef long double _Complex __pyx_t_long_double_complex; + #endif +#else + typedef struct { long double real, imag; } __pyx_t_long_double_complex; +#endif +static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double, long double); + /* #### Code section: type_declarations ### */ /*--- Type declarations ---*/ -typedef npy_cfloat __pyx_t_5numpy_cfloat_t; - -typedef npy_cdouble __pyx_t_5numpy_cdouble_t; - -typedef npy_clongdouble __pyx_t_5numpy_clongdouble_t; - -typedef npy_cdouble __pyx_t_5numpy_complex_t; +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1095 + * + * # Iterator API added in v1.6 + * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil # <<<<<<<<<<<<<< + * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil + * + */ +typedef int (*__pyx_t_5numpy_NpyIter_IterNextFunc)(NpyIter *); + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1096 + * # Iterator API added in v1.6 + * ctypedef int (*NpyIter_IterNextFunc)(NpyIter* it) noexcept nogil + * ctypedef void (*NpyIter_GetMultiIndexFunc)(NpyIter* it, npy_intp* outcoords) noexcept nogil # <<<<<<<<<<<<<< + * + * cdef extern from "numpy/arrayobject.h": + */ +typedef void (*__pyx_t_5numpy_NpyIter_GetMultiIndexFunc)(NpyIter *, npy_intp *); /* #### Code section: utility_code_proto ### */ /* --- Runtime support code (head) --- */ @@ -2563,6 +2752,44 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, #endif #endif +/* Arithmetic.proto */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #define __Pyx_c_eq_long__double(a, b) ((a)==(b)) + #define __Pyx_c_sum_long__double(a, b) ((a)+(b)) + #define __Pyx_c_diff_long__double(a, b) ((a)-(b)) + #define __Pyx_c_prod_long__double(a, b) ((a)*(b)) + #define __Pyx_c_quot_long__double(a, b) ((a)/(b)) + #define __Pyx_c_neg_long__double(a) (-(a)) + #ifdef __cplusplus + #define __Pyx_c_is_zero_long__double(z) ((z)==(long double)0) + #define __Pyx_c_conj_long__double(z) (::std::conj(z)) + #if 1 + #define __Pyx_c_abs_long__double(z) (::std::abs(z)) + #define __Pyx_c_pow_long__double(a, b) (::std::pow(a, b)) + #endif + #else + #define __Pyx_c_is_zero_long__double(z) ((z)==0) + #define __Pyx_c_conj_long__double(z) (conjl(z)) + #if 1 + #define __Pyx_c_abs_long__double(z) (cabsl(z)) + #define __Pyx_c_pow_long__double(a, b) (cpowl(a, b)) + #endif + #endif +#else + static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex); + #if 1 + static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex); + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex, __pyx_t_long_double_complex); + #endif +#endif + /* CIntFromPy.proto */ static CYTHON_INLINE TA_RetCode __Pyx_PyInt_As_TA_RetCode(PyObject *); @@ -2649,6 +2876,18 @@ static int __Pyx_check_binary_version(unsigned long ct_version, unsigned long rt static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /* #### Code section: module_declarations ### */ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self); /* proto*/ +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ +static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self); /* proto*/ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self); /* proto*/ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self); /* proto*/ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self); /* proto*/ @@ -2811,7 +3050,7 @@ static const char __pyx_k_TANH[] = "TANH"; static const char __pyx_k_TEMA[] = "TEMA"; static const char __pyx_k_TRIX[] = "TRIX"; static const char __pyx_k__240[] = "*"; -static const char __pyx_k__503[] = "?"; +static const char __pyx_k__307[] = "?"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_call[] = "__call__"; static const char __pyx_k_copy[] = "copy"; @@ -3023,7 +3262,6 @@ static const char __pyx_k_WCLPRICE[] = "WCLPRICE"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_is_empty[] = "is_empty"; static const char __pyx_k_lookback[] = "lookback"; -static const char __pyx_k_low_data[] = "low_data"; static const char __pyx_k_outfastd[] = "outfastd"; static const char __pyx_k_outfastk[] = "outfastk"; static const char __pyx_k_outslowd[] = "outslowd"; @@ -3064,24 +3302,16 @@ static const char __pyx_k_func_info[] = "func_info"; static const char __pyx_k_func_line[] = "func_line"; static const char __pyx_k_functions[] = "functions"; static const char __pyx_k_get_flags[] = "__get_flags"; -static const char __pyx_k_high_data[] = "high_data"; static const char __pyx_k_maxperiod[] = "maxperiod"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_minperiod[] = "minperiod"; -static const char __pyx_k_open_data[] = "open_data"; static const char __pyx_k_opt_input[] = "opt_input"; static const char __pyx_k_outbegidx[] = "outbegidx"; static const char __pyx_k_outmaxidx[] = "outmaxidx"; static const char __pyx_k_outminidx[] = "outminidx"; static const char __pyx_k_rangetype[] = "rangetype"; -static const char __pyx_k_real_data[] = "real_data"; static const char __pyx_k_slowlimit[] = "slowlimit"; static const char __pyx_k_str2bytes[] = "str2bytes"; -static const char __pyx_k_stream_AD[] = "stream_AD"; -static const char __pyx_k_stream_DX[] = "stream_DX"; -static const char __pyx_k_stream_LN[] = "stream_LN"; -static const char __pyx_k_stream_MA[] = "stream_MA"; -static const char __pyx_k_stream_T3[] = "stream_T3"; static const char __pyx_k_stream__s[] = "stream_%s"; static const char __pyx_k_threading[] = "threading"; static const char __pyx_k_timeStamp[] = "timeStamp"; @@ -3101,7 +3331,6 @@ static const char __pyx_k_TA_MACDFIX[] = "TA_MACDFIX"; static const char __pyx_k_TA_PLUS_DI[] = "TA_PLUS_DI"; static const char __pyx_k_TA_PLUS_DM[] = "TA_PLUS_DM"; static const char __pyx_k_TA_ROCR100[] = "TA_ROCR100"; -static const char __pyx_k_close_data[] = "close_data"; static const char __pyx_k_fastmatype[] = "fastmatype"; static const char __pyx_k_fastperiod[] = "fastperiod"; static const char __pyx_k_input_name[] = "input_name"; @@ -3112,40 +3341,10 @@ static const char __pyx_k_outinphase[] = "outinphase"; static const char __pyx_k_outinteger[] = "outinteger"; static const char __pyx_k_param_name[] = "param_name"; static const char __pyx_k_parameters[] = "parameters"; -static const char __pyx_k_real0_data[] = "real0_data"; -static const char __pyx_k_real1_data[] = "real1_data"; static const char __pyx_k_skip_first[] = "skip_first"; static const char __pyx_k_slowmatype[] = "slowmatype"; static const char __pyx_k_slowperiod[] = "slowperiod"; static const char __pyx_k_startvalue[] = "startvalue"; -static const char __pyx_k_stream_ADD[] = "stream_ADD"; -static const char __pyx_k_stream_ADX[] = "stream_ADX"; -static const char __pyx_k_stream_APO[] = "stream_APO"; -static const char __pyx_k_stream_ATR[] = "stream_ATR"; -static const char __pyx_k_stream_BOP[] = "stream_BOP"; -static const char __pyx_k_stream_CCI[] = "stream_CCI"; -static const char __pyx_k_stream_CMO[] = "stream_CMO"; -static const char __pyx_k_stream_COS[] = "stream_COS"; -static const char __pyx_k_stream_DIV[] = "stream_DIV"; -static const char __pyx_k_stream_EMA[] = "stream_EMA"; -static const char __pyx_k_stream_EXP[] = "stream_EXP"; -static const char __pyx_k_stream_MAX[] = "stream_MAX"; -static const char __pyx_k_stream_MFI[] = "stream_MFI"; -static const char __pyx_k_stream_MIN[] = "stream_MIN"; -static const char __pyx_k_stream_MOM[] = "stream_MOM"; -static const char __pyx_k_stream_OBV[] = "stream_OBV"; -static const char __pyx_k_stream_PPO[] = "stream_PPO"; -static const char __pyx_k_stream_ROC[] = "stream_ROC"; -static const char __pyx_k_stream_RSI[] = "stream_RSI"; -static const char __pyx_k_stream_SAR[] = "stream_SAR"; -static const char __pyx_k_stream_SIN[] = "stream_SIN"; -static const char __pyx_k_stream_SMA[] = "stream_SMA"; -static const char __pyx_k_stream_SUB[] = "stream_SUB"; -static const char __pyx_k_stream_SUM[] = "stream_SUM"; -static const char __pyx_k_stream_TAN[] = "stream_TAN"; -static const char __pyx_k_stream_TSF[] = "stream_TSF"; -static const char __pyx_k_stream_VAR[] = "stream_VAR"; -static const char __pyx_k_stream_WMA[] = "stream_WMA"; static const char __pyx_k_ta_version[] = "__ta_version__"; static const char __pyx_k_timeperiod[] = "timeperiod"; static const char __pyx_k_ARRAY_TYPES[] = "__ARRAY_TYPES"; @@ -3188,34 +3387,12 @@ static const char __pyx_k_outmacdhist[] = "outmacdhist"; static const char __pyx_k_output_name[] = "output_name"; static const char __pyx_k_penetration[] = "penetration"; static const char __pyx_k_settingtype[] = "settingtype"; -static const char __pyx_k_stream_ACOS[] = "stream_ACOS"; -static const char __pyx_k_stream_ADXR[] = "stream_ADXR"; -static const char __pyx_k_stream_ASIN[] = "stream_ASIN"; -static const char __pyx_k_stream_ATAN[] = "stream_ATAN"; -static const char __pyx_k_stream_BETA[] = "stream_BETA"; -static const char __pyx_k_stream_CEIL[] = "stream_CEIL"; -static const char __pyx_k_stream_COSH[] = "stream_COSH"; -static const char __pyx_k_stream_DEMA[] = "stream_DEMA"; -static const char __pyx_k_stream_KAMA[] = "stream_KAMA"; -static const char __pyx_k_stream_MACD[] = "stream_MACD"; -static const char __pyx_k_stream_MAMA[] = "stream_MAMA"; -static const char __pyx_k_stream_MAVP[] = "stream_MAVP"; -static const char __pyx_k_stream_MULT[] = "stream_MULT"; -static const char __pyx_k_stream_NATR[] = "stream_NATR"; -static const char __pyx_k_stream_ROCP[] = "stream_ROCP"; -static const char __pyx_k_stream_ROCR[] = "stream_ROCR"; -static const char __pyx_k_stream_SINH[] = "stream_SINH"; -static const char __pyx_k_stream_SQRT[] = "stream_SQRT"; -static const char __pyx_k_stream_TANH[] = "stream_TANH"; -static const char __pyx_k_stream_TEMA[] = "stream_TEMA"; -static const char __pyx_k_stream_TRIX[] = "stream_TRIX"; static const char __pyx_k_ta_shutdown[] = "_ta_shutdown"; static const char __pyx_k_timeperiod1[] = "timeperiod1"; static const char __pyx_k_timeperiod2[] = "timeperiod2"; static const char __pyx_k_timeperiod3[] = "timeperiod3"; static const char __pyx_k_update_info[] = "update_info"; static const char __pyx_k_value_range[] = "value_range"; -static const char __pyx_k_volume_data[] = "volume_data"; static const char __pyx_k_BodyVeryLong[] = "BodyVeryLong"; static const char __pyx_k_CDLBREAKAWAY[] = "CDLBREAKAWAY"; static const char __pyx_k_CDLENGULFING[] = "CDLENGULFING"; @@ -3250,7 +3427,6 @@ static const char __pyx_k_outaroondown[] = "outaroondown"; static const char __pyx_k_outnbelement[] = "outnbelement"; static const char __pyx_k_output_flags[] = "output_flags"; static const char __pyx_k_output_names[] = "output_names"; -static const char __pyx_k_periods_data[] = "periods_data"; static const char __pyx_k_price_series[] = "price_series"; static const char __pyx_k_signalmatype[] = "signalmatype"; static const char __pyx_k_signalperiod[] = "signalperiod"; @@ -3258,13 +3434,6 @@ static const char __pyx_k_slowd_matype[] = "slowd_matype"; static const char __pyx_k_slowd_period[] = "slowd_period"; static const char __pyx_k_slowk_matype[] = "slowk_matype"; static const char __pyx_k_slowk_period[] = "slowk_period"; -static const char __pyx_k_stream_ADOSC[] = "stream_ADOSC"; -static const char __pyx_k_stream_AROON[] = "stream_AROON"; -static const char __pyx_k_stream_FLOOR[] = "stream_FLOOR"; -static const char __pyx_k_stream_LOG10[] = "stream_LOG10"; -static const char __pyx_k_stream_STOCH[] = "stream_STOCH"; -static const char __pyx_k_stream_TRIMA[] = "stream_TRIMA"; -static const char __pyx_k_stream_WILLR[] = "stream_WILLR"; static const char __pyx_k_CDLHANGINGMAN[] = "CDLHANGINGMAN"; static const char __pyx_k_CDLHIKKAKEMOD[] = "CDLHIKKAKEMOD"; static const char __pyx_k_Function_info[] = "Function.info"; @@ -3288,14 +3457,6 @@ static const char __pyx_k_init_subclass[] = "__init_subclass__"; static const char __pyx_k_outmacdsignal[] = "outmacdsignal"; static const char __pyx_k_outputs_valid[] = "outputs_valid"; static const char __pyx_k_outquadrature[] = "outquadrature"; -static const char __pyx_k_stream_BBANDS[] = "stream_BBANDS"; -static const char __pyx_k_stream_CORREL[] = "stream_CORREL"; -static const char __pyx_k_stream_MINMAX[] = "stream_MINMAX"; -static const char __pyx_k_stream_SAREXT[] = "stream_SAREXT"; -static const char __pyx_k_stream_STDDEV[] = "stream_STDDEV"; -static const char __pyx_k_stream_STOCHF[] = "stream_STOCHF"; -static const char __pyx_k_stream_TRANGE[] = "stream_TRANGE"; -static const char __pyx_k_stream_ULTOSC[] = "stream_ULTOSC"; static const char __pyx_k_ta_initialize[] = "_ta_initialize"; static const char __pyx_k_talib__ta_lib[] = "talib._ta_lib"; static const char __pyx_k_CDL3BLACKCROWS[] = "CDL3BLACKCROWS"; @@ -3329,13 +3490,6 @@ static const char __pyx_k_num_opt_inputs[] = "num_opt_inputs"; static const char __pyx_k_outmaxidx_data[] = "outmaxidx_data"; static const char __pyx_k_outminidx_data[] = "outminidx_data"; static const char __pyx_k_set_parameters[] = "set_parameters"; -static const char __pyx_k_stream_CDLDOJI[] = "stream_CDLDOJI"; -static const char __pyx_k_stream_HT_SINE[] = "stream_HT_SINE"; -static const char __pyx_k_stream_MACDEXT[] = "stream_MACDEXT"; -static const char __pyx_k_stream_MACDFIX[] = "stream_MACDFIX"; -static const char __pyx_k_stream_PLUS_DI[] = "stream_PLUS_DI"; -static const char __pyx_k_stream_PLUS_DM[] = "stream_PLUS_DM"; -static const char __pyx_k_stream_ROCR100[] = "stream_ROCR100"; static const char __pyx_k_ta_getFuncInfo[] = "_ta_getFuncInfo"; static const char __pyx_k_CDLADVANCEBLOCK[] = "CDLADVANCEBLOCK"; static const char __pyx_k_CDLHOMINGPIGEON[] = "CDLHOMINGPIGEON"; @@ -3361,18 +3515,6 @@ static const char __pyx_k_get_input_names[] = "get_input_names"; static const char __pyx_k_offsetonreverse[] = "offsetonreverse"; static const char __pyx_k_outinteger_data[] = "outinteger_data"; static const char __pyx_k_set_input_names[] = "set_input_names"; -static const char __pyx_k_stream_AROONOSC[] = "stream_AROONOSC"; -static const char __pyx_k_stream_AVGPRICE[] = "stream_AVGPRICE"; -static const char __pyx_k_stream_MAXINDEX[] = "stream_MAXINDEX"; -static const char __pyx_k_stream_MEDPRICE[] = "stream_MEDPRICE"; -static const char __pyx_k_stream_MIDPOINT[] = "stream_MIDPOINT"; -static const char __pyx_k_stream_MIDPRICE[] = "stream_MIDPRICE"; -static const char __pyx_k_stream_MININDEX[] = "stream_MININDEX"; -static const char __pyx_k_stream_MINUS_DI[] = "stream_MINUS_DI"; -static const char __pyx_k_stream_MINUS_DM[] = "stream_MINUS_DM"; -static const char __pyx_k_stream_STOCHRSI[] = "stream_STOCHRSI"; -static const char __pyx_k_stream_TYPPRICE[] = "stream_TYPPRICE"; -static const char __pyx_k_stream_WCLPRICE[] = "stream_WCLPRICE"; static const char __pyx_k_ta_getFuncTable[] = "_ta_getFuncTable"; static const char __pyx_k_talib__func_pxi[] = "talib/_func.pxi"; static const char __pyx_k_CDL3STARSINSOUTH[] = "CDL3STARSINSOUTH"; @@ -3394,14 +3536,6 @@ static const char __pyx_k_opt_input_values[] = "opt_input_values"; static const char __pyx_k_outreallowerband[] = "outreallowerband"; static const char __pyx_k_outrealupperband[] = "outrealupperband"; static const char __pyx_k_set_input_arrays[] = "set_input_arrays"; -static const char __pyx_k_stream_CDL2CROWS[] = "stream_CDL2CROWS"; -static const char __pyx_k_stream_CDLHAMMER[] = "stream_CDLHAMMER"; -static const char __pyx_k_stream_CDLHARAMI[] = "stream_CDLHARAMI"; -static const char __pyx_k_stream_CDLINNECK[] = "stream_CDLINNECK"; -static const char __pyx_k_stream_CDLONNECK[] = "stream_CDLONNECK"; -static const char __pyx_k_stream_CDLTAKURI[] = "stream_CDLTAKURI"; -static const char __pyx_k_stream_HT_PHASOR[] = "stream_HT_PHASOR"; -static const char __pyx_k_stream_LINEARREG[] = "stream_LINEARREG"; static const char __pyx_k_ta_check_success[] = "_ta_check_success"; static const char __pyx_k_ta_func_unst_ids[] = "_ta_func_unst_ids"; static const char __pyx_k_ta_getGroupTable[] = "_ta_getGroupTable"; @@ -3431,14 +3565,7 @@ static const char __pyx_k_accelerationshort[] = "accelerationshort"; static const char __pyx_k_flags_lookup_dict[] = "flags_lookup_dict"; static const char __pyx_k_outrealmiddleband[] = "outrealmiddleband"; static const char __pyx_k_set_function_args[] = "set_function_args"; -static const char __pyx_k_stream_CDL3INSIDE[] = "stream_CDL3INSIDE"; -static const char __pyx_k_stream_CDLHIKKAKE[] = "stream_CDLHIKKAKE"; -static const char __pyx_k_stream_CDLKICKING[] = "stream_CDLKICKING"; -static const char __pyx_k_stream_CDLMATHOLD[] = "stream_CDLMATHOLD"; -static const char __pyx_k_stream_CDLTRISTAR[] = "stream_CDLTRISTAR"; -static const char __pyx_k_stream_HT_DCPHASE[] = "stream_HT_DCPHASE"; static const char __pyx_k_talib__common_pxi[] = "talib/_common.pxi"; -static const char __pyx_k_talib__stream_pxi[] = "talib/_stream.pxi"; static const char __pyx_k_CDLCLOSINGMARUBOZU[] = "CDLCLOSINGMARUBOZU"; static const char __pyx_k_CDLEVENINGDOJISTAR[] = "CDLEVENINGDOJISTAR"; static const char __pyx_k_CDLIDENTICAL3CROWS[] = "CDLIDENTICAL3CROWS"; @@ -3460,15 +3587,6 @@ static const char __pyx_k_TA_LINEARREG_SLOPE[] = "TA_LINEARREG_SLOPE"; static const char __pyx_k_TA_ParamHolderFree[] = "TA_ParamHolderFree"; static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; -static const char __pyx_k_stream_CDL3OUTSIDE[] = "stream_CDL3OUTSIDE"; -static const char __pyx_k_stream_CDLBELTHOLD[] = "stream_CDLBELTHOLD"; -static const char __pyx_k_stream_CDLDOJISTAR[] = "stream_CDLDOJISTAR"; -static const char __pyx_k_stream_CDLHIGHWAVE[] = "stream_CDLHIGHWAVE"; -static const char __pyx_k_stream_CDLLONGLINE[] = "stream_CDLLONGLINE"; -static const char __pyx_k_stream_CDLMARUBOZU[] = "stream_CDLMARUBOZU"; -static const char __pyx_k_stream_CDLPIERCING[] = "stream_CDLPIERCING"; -static const char __pyx_k_stream_HT_DCPERIOD[] = "stream_HT_DCPERIOD"; -static const char __pyx_k_stream_MINMAXINDEX[] = "stream_MINMAXINDEX"; static const char __pyx_k_CDLCONCEALBABYSWALL[] = "CDLCONCEALBABYSWALL"; static const char __pyx_k_CDLGAPSIDESIDEWHITE[] = "CDLGAPSIDESIDEWHITE"; static const char __pyx_k_CDLRISEFALL3METHODS[] = "CDLRISEFALL3METHODS"; @@ -3485,13 +3603,6 @@ static const char __pyx_k_TA_ParamHolderAlloc[] = "TA_ParamHolderAlloc"; static const char __pyx_k_TA_SetCompatibility[] = "TA_SetCompatibility"; static const char __pyx_k_accelerationmaxlong[] = "accelerationmaxlong"; static const char __pyx_k_get_opt_input_value[] = "__get_opt_input_value"; -static const char __pyx_k_stream_CDLBREAKAWAY[] = "stream_CDLBREAKAWAY"; -static const char __pyx_k_stream_CDLENGULFING[] = "stream_CDLENGULFING"; -static const char __pyx_k_stream_CDLSHORTLINE[] = "stream_CDLSHORTLINE"; -static const char __pyx_k_stream_CDLTASUKIGAP[] = "stream_CDLTASUKIGAP"; -static const char __pyx_k_stream_CDLTHRUSTING[] = "stream_CDLTHRUSTING"; -static const char __pyx_k_stream_HT_TRENDLINE[] = "stream_HT_TRENDLINE"; -static const char __pyx_k_stream_HT_TRENDMODE[] = "stream_HT_TRENDMODE"; static const char __pyx_k_talib__abstract_pxi[] = "talib/_abstract.pxi"; static const char __pyx_k_TA_CDL3WHITESOLDIERS[] = "TA_CDL3WHITESOLDIERS"; static const char __pyx_k_TA_CDLDARKCLOUDCOVER[] = "TA_CDLDARKCLOUDCOVER"; @@ -3503,8 +3614,6 @@ static const char __pyx_k_TA_SetCandleSettings[] = "TA_SetCandleSettings"; static const char __pyx_k_TA_SetUnstablePeriod[] = "TA_SetUnstablePeriod"; static const char __pyx_k_accelerationinitlong[] = "accelerationinitlong"; static const char __pyx_k_accelerationmaxshort[] = "accelerationmaxshort"; -static const char __pyx_k_stream_CDLHANGINGMAN[] = "stream_CDLHANGINGMAN"; -static const char __pyx_k_stream_CDLHIKKAKEMOD[] = "stream_CDLHIKKAKEMOD"; static const char __pyx_k_ta_get_compatibility[] = "_ta_get_compatibility"; static const char __pyx_k_ta_set_compatibility[] = "_ta_set_compatibility"; static const char __pyx_k_Function_output_flags[] = "Function.output_flags"; @@ -3521,14 +3630,6 @@ static const char __pyx_k_TA_CDLUPSIDEGAP2CROWS[] = "TA_CDLUPSIDEGAP2CROWS"; static const char __pyx_k_accelerationinitshort[] = "accelerationinitshort"; static const char __pyx_k_check_opt_input_value[] = "__check_opt_input_value"; static const char __pyx_k_get_defaults_and_docs[] = "_get_defaults_and_docs"; -static const char __pyx_k_stream_CDL3BLACKCROWS[] = "stream_CDL3BLACKCROWS"; -static const char __pyx_k_stream_CDL3LINESTRIKE[] = "stream_CDL3LINESTRIKE"; -static const char __pyx_k_stream_CDLEVENINGSTAR[] = "stream_CDLEVENINGSTAR"; -static const char __pyx_k_stream_CDLHARAMICROSS[] = "stream_CDLHARAMICROSS"; -static const char __pyx_k_stream_CDLMATCHINGLOW[] = "stream_CDLMATCHINGLOW"; -static const char __pyx_k_stream_CDLMORNINGSTAR[] = "stream_CDLMORNINGSTAR"; -static const char __pyx_k_stream_CDLRICKSHAWMAN[] = "stream_CDLRICKSHAWMAN"; -static const char __pyx_k_stream_CDLSPINNINGTOP[] = "stream_CDLSPINNINGTOP"; static const char __pyx_k_Output_can_be_negative[] = "Output can be negative"; static const char __pyx_k_Output_can_be_positive[] = "Output can be positive"; static const char __pyx_k_TA_CDLCONCEALBABYSWALL[] = "TA_CDLCONCEALBABYSWALL"; @@ -3537,13 +3638,6 @@ static const char __pyx_k_TA_CDLRISEFALL3METHODS[] = "TA_CDLRISEFALL3METHODS"; static const char __pyx_k_TA_CDLXSIDEGAP3METHODS[] = "TA_CDLXSIDEGAP3METHODS"; static const char __pyx_k_TA_LINEARREG_INTERCEPT[] = "TA_LINEARREG_INTERCEPT"; static const char __pyx_k_display_name_s_group_s[] = "%(display_name)s (%(group)s)\n"; -static const char __pyx_k_stream_CDLADVANCEBLOCK[] = "stream_CDLADVANCEBLOCK"; -static const char __pyx_k_stream_CDLHOMINGPIGEON[] = "stream_CDLHOMINGPIGEON"; -static const char __pyx_k_stream_CDLLADDERBOTTOM[] = "stream_CDLLADDERBOTTOM"; -static const char __pyx_k_stream_CDLSHOOTINGSTAR[] = "stream_CDLSHOOTINGSTAR"; -static const char __pyx_k_stream_CDLUNIQUE3RIVER[] = "stream_CDLUNIQUE3RIVER"; -static const char __pyx_k_stream_LINEARREG_ANGLE[] = "stream_LINEARREG_ANGLE"; -static const char __pyx_k_stream_LINEARREG_SLOPE[] = "stream_LINEARREG_SLOPE"; static const char __pyx_k_ta_get_unstable_period[] = "_ta_get_unstable_period"; static const char __pyx_k_ta_set_candle_settings[] = "_ta_set_candle_settings"; static const char __pyx_k_ta_set_unstable_period[] = "_ta_set_unstable_period"; @@ -3554,11 +3648,6 @@ static const char __pyx_k_Function_set_parameters[] = "Function.set_parameters"; static const char __pyx_k_Output_is_a_candlestick[] = "Output is a candlestick"; static const char __pyx_k_TA_SetOptInputParamReal[] = "TA_SetOptInputParamReal"; static const char __pyx_k_Weighted_Moving_Average[] = "Weighted Moving Average"; -static const char __pyx_k_stream_CDL3STARSINSOUTH[] = "stream_CDL3STARSINSOUTH"; -static const char __pyx_k_stream_CDLABANDONEDBABY[] = "stream_CDLABANDONEDBABY"; -static const char __pyx_k_stream_CDLCOUNTERATTACK[] = "stream_CDLCOUNTERATTACK"; -static const char __pyx_k_stream_CDLDRAGONFLYDOJI[] = "stream_CDLDRAGONFLYDOJI"; -static const char __pyx_k_stream_CDLSTICKSANDWICH[] = "stream_CDLSTICKSANDWICH"; static const char __pyx_k_Bad_Object_TA_BAD_OBJECT[] = "Bad Object (TA_BAD_OBJECT)"; static const char __pyx_k_Function___call_function[] = "Function.__call_function"; static const char __pyx_k_Function_get_input_names[] = "Function.get_input_names"; @@ -3567,24 +3656,11 @@ static const char __pyx_k_TA_GetInputParameterInfo[] = "TA_GetInputParameterInfo static const char __pyx_k_input_price_series_names[] = "input_price_series_names"; static const char __pyx_k_no_existing_input_arrays[] = "no_existing_input_arrays"; static const char __pyx_k_price_series_name_values[] = "price_series_name_values"; -static const char __pyx_k_stream_CDL3WHITESOLDIERS[] = "stream_CDL3WHITESOLDIERS"; -static const char __pyx_k_stream_CDLDARKCLOUDCOVER[] = "stream_CDLDARKCLOUDCOVER"; -static const char __pyx_k_stream_CDLGRAVESTONEDOJI[] = "stream_CDLGRAVESTONEDOJI"; -static const char __pyx_k_stream_CDLINVERTEDHAMMER[] = "stream_CDLINVERTEDHAMMER"; -static const char __pyx_k_stream_CDLLONGLEGGEDDOJI[] = "stream_CDLLONGLEGGEDDOJI"; -static const char __pyx_k_stream_CDLSTALLEDPATTERN[] = "stream_CDLSTALLEDPATTERN"; static const char __pyx_k_ta_getInputParameterInfo[] = "_ta_getInputParameterInfo"; static const char __pyx_k_Function_get_input_arrays[] = "Function.get_input_arrays"; static const char __pyx_k_Function_set_input_arrays[] = "Function.set_input_arrays"; static const char __pyx_k_TA_GetOutputParameterInfo[] = "TA_GetOutputParameterInfo"; static const char __pyx_k_Triangular_Moving_Average[] = "Triangular Moving Average"; -static const char __pyx_k_stream_CDLCLOSINGMARUBOZU[] = "stream_CDLCLOSINGMARUBOZU"; -static const char __pyx_k_stream_CDLEVENINGDOJISTAR[] = "stream_CDLEVENINGDOJISTAR"; -static const char __pyx_k_stream_CDLIDENTICAL3CROWS[] = "stream_CDLIDENTICAL3CROWS"; -static const char __pyx_k_stream_CDLKICKINGBYLENGTH[] = "stream_CDLKICKINGBYLENGTH"; -static const char __pyx_k_stream_CDLMORNINGDOJISTAR[] = "stream_CDLMORNINGDOJISTAR"; -static const char __pyx_k_stream_CDLSEPARATINGLINES[] = "stream_CDLSEPARATINGLINES"; -static const char __pyx_k_stream_CDLUPSIDEGAP2CROWS[] = "stream_CDLUPSIDEGAP2CROWS"; static const char __pyx_k_ta_getOutputParameterInfo[] = "_ta_getOutputParameterInfo"; static const char __pyx_k_Bad_Parameter_TA_BAD_PARAM[] = "Bad Parameter (TA_BAD_PARAM)"; static const char __pyx_k_Exponential_Moving_Average[] = "Exponential Moving Average"; @@ -3592,11 +3668,6 @@ static const char __pyx_k_Function_set_function_args[] = "Function.set_function_ static const char __pyx_k_Output_scale_same_as_input[] = "Output scale same as input"; static const char __pyx_k_TA_SetOptInputParamInteger[] = "TA_SetOptInputParamInteger"; static const char __pyx_k_input_price_series_names_2[] = "__input_price_series_names"; -static const char __pyx_k_stream_CDLCONCEALBABYSWALL[] = "stream_CDLCONCEALBABYSWALL"; -static const char __pyx_k_stream_CDLGAPSIDESIDEWHITE[] = "stream_CDLGAPSIDESIDEWHITE"; -static const char __pyx_k_stream_CDLRISEFALL3METHODS[] = "stream_CDLRISEFALL3METHODS"; -static const char __pyx_k_stream_CDLXSIDEGAP3METHODS[] = "stream_CDLXSIDEGAP3METHODS"; -static const char __pyx_k_stream_LINEARREG_INTERCEPT[] = "stream_LINEARREG_INTERCEPT"; static const char __pyx_k_INPUT_PRICE_SERIES_DEFAULTS[] = "__INPUT_PRICE_SERIES_DEFAULTS"; static const char __pyx_k_TA_GetOptInputParameterInfo[] = "TA_GetOptInputParameterInfo"; static const char __pyx_k_ta_getOptInputParameterInfo[] = "_ta_getOptInputParameterInfo"; @@ -3617,7 +3688,6 @@ static const char __pyx_k_TA_RestoreCandleDefaultSettings[] = "TA_RestoreCandleD static const char __pyx_k_This_is_a_pythonic_wrapper_arou[] = "\n This is a pythonic wrapper around TALIB's 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 "; static const char __pyx_k_Values_represent_an_upper_limit[] = "Values represent an upper limit"; static const char __pyx_k_integer_values_are_100_0_or_100[] = "integer (values are -100, 0 or 100)"; -static const char __pyx_k_numpy_core_multiarray_failed_to[] = "numpy.core.multiarray failed to import"; static const char __pyx_k_s_function_failed_with_error_co[] = "%s function failed with error code %s: %s"; static const char __pyx_k_ta_restore_candle_default_setti[] = "_ta_restore_candle_default_settings"; static const char __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut[] = "Bull/Bear Pattern (Bearish < 0, Neutral = 0, Bullish > 0)"; @@ -3645,7 +3715,8 @@ static const char __pyx_k_Triple_Generalized_Double_Expone[] = "Triple Generaliz static const char __pyx_k_input_array_has_wrong_dimensions[] = "input array has wrong dimensions"; static const char __pyx_k_input_array_lengths_are_differen[] = "input array lengths are different"; static const char __pyx_k_input_arrays_parameter_missing_r[] = "input_arrays parameter missing required data key%s: %s"; -static const char __pyx_k_numpy_core_umath_failed_to_impor[] = "numpy.core.umath failed to import"; +static const char __pyx_k_numpy__core_multiarray_failed_to[] = "numpy._core.multiarray failed to import"; +static const char __pyx_k_numpy__core_umath_failed_to_impo[] = "numpy._core.umath failed to import"; /* #### Code section: decls ### */ static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_function_name, TA_RetCode __pyx_v_ret_code); /* proto */ static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject *__pyx_self); /* proto */ @@ -3852,164 +3923,6 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN static PyObject *__pyx_pf_5talib_7_ta_lib_352_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_354_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_356_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(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_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(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_366stream_ADX(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_368stream_ADXR(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_370stream_APO(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_372stream_AROON(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_374stream_AROONOSC(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_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(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_382stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(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_386stream_BETA(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_388stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(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_392stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(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_408stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(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_422stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(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_432stream_CDLEVENINGSTAR(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_434stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(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_476stream_CDLMORNINGDOJISTAR(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_478stream_CDLMORNINGSTAR(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_480stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(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_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(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_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(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_564stream_MACD(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_566stream_MACDEXT(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_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(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_572stream_MAVP(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_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(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_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(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_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_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_596stream_MINUS_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_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(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_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_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_608stream_PLUS_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_610stream_PPO(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_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(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_624stream_SAREXT(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_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(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_636stream_STOCH(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_638stream_STOCHF(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_640stream_STOCHRSI(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_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(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_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(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_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(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_664stream_ULTOSC(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_666stream_VAR(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_668stream_WCLPRICE(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_670stream_WILLR(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_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, 0, 0, 0, 0}; /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ @@ -4541,8 +4454,8 @@ typedef struct { PyObject *__pyx_kp_s__11; PyObject *__pyx_kp_s__12; PyObject *__pyx_n_s__240; + PyObject *__pyx_n_s__307; PyObject *__pyx_kp_u__43; - PyObject *__pyx_n_s__503; PyObject *__pyx_kp_s__6; PyObject *__pyx_kp_s__7; PyObject *__pyx_kp_s__9; @@ -4572,7 +4485,6 @@ typedef struct { PyObject *__pyx_n_s_cline_in_traceback; PyObject *__pyx_n_s_clone; PyObject *__pyx_n_s_close; - PyObject *__pyx_n_s_close_data; PyObject *__pyx_n_s_collections; PyObject *__pyx_n_s_column_stack; PyObject *__pyx_n_s_columns; @@ -4617,7 +4529,6 @@ typedef struct { PyObject *__pyx_n_s_groups; PyObject *__pyx_n_s_help; PyObject *__pyx_n_s_high; - PyObject *__pyx_n_s_high_data; PyObject *__pyx_n_s_holder; PyObject *__pyx_n_s_i; PyObject *__pyx_n_s_id; @@ -4656,7 +4567,6 @@ typedef struct { PyObject *__pyx_n_s_lookback; PyObject *__pyx_n_s_lookup; PyObject *__pyx_n_s_low; - PyObject *__pyx_n_s_low_data; PyObject *__pyx_n_s_lower; PyObject *__pyx_n_s_main; PyObject *__pyx_n_s_math; @@ -4686,13 +4596,12 @@ typedef struct { PyObject *__pyx_n_s_num_opt_inputs; PyObject *__pyx_n_s_num_outputs; PyObject *__pyx_n_s_numpy; - PyObject *__pyx_kp_s_numpy_core_multiarray_failed_to; - PyObject *__pyx_kp_s_numpy_core_umath_failed_to_impor; + PyObject *__pyx_kp_s_numpy__core_multiarray_failed_to; + PyObject *__pyx_kp_s_numpy__core_umath_failed_to_impo; PyObject *__pyx_n_s_object; PyObject *__pyx_n_s_offsetonreverse; PyObject *__pyx_n_s_open; PyObject *__pyx_n_s_openInterest; - PyObject *__pyx_n_s_open_data; PyObject *__pyx_n_s_optIn; PyObject *__pyx_n_s_opt_input; PyObject *__pyx_n_s_opt_input_values; @@ -4742,7 +4651,6 @@ typedef struct { PyObject *__pyx_n_s_penetration; PyObject *__pyx_n_s_period; PyObject *__pyx_n_s_periods; - PyObject *__pyx_n_s_periods_data; PyObject *__pyx_n_s_polars; PyObject *__pyx_n_s_pop; PyObject *__pyx_n_s_prepare; @@ -4758,10 +4666,7 @@ typedef struct { PyObject *__pyx_n_s_rangetype; PyObject *__pyx_n_s_real; PyObject *__pyx_n_s_real0; - PyObject *__pyx_n_s_real0_data; PyObject *__pyx_n_s_real1; - PyObject *__pyx_n_s_real1_data; - PyObject *__pyx_n_s_real_data; PyObject *__pyx_n_s_replace; PyObject *__pyx_n_s_repr; PyObject *__pyx_n_s_results; @@ -4799,164 +4704,6 @@ typedef struct { PyObject *__pyx_n_s_startvalue; PyObject *__pyx_n_s_str; PyObject *__pyx_n_s_str2bytes; - PyObject *__pyx_n_s_stream_ACOS; - PyObject *__pyx_n_s_stream_AD; - PyObject *__pyx_n_s_stream_ADD; - PyObject *__pyx_n_s_stream_ADOSC; - PyObject *__pyx_n_s_stream_ADX; - PyObject *__pyx_n_s_stream_ADXR; - PyObject *__pyx_n_s_stream_APO; - PyObject *__pyx_n_s_stream_AROON; - PyObject *__pyx_n_s_stream_AROONOSC; - PyObject *__pyx_n_s_stream_ASIN; - PyObject *__pyx_n_s_stream_ATAN; - PyObject *__pyx_n_s_stream_ATR; - PyObject *__pyx_n_s_stream_AVGPRICE; - PyObject *__pyx_n_s_stream_BBANDS; - PyObject *__pyx_n_s_stream_BETA; - PyObject *__pyx_n_s_stream_BOP; - PyObject *__pyx_n_s_stream_CCI; - PyObject *__pyx_n_s_stream_CDL2CROWS; - PyObject *__pyx_n_s_stream_CDL3BLACKCROWS; - PyObject *__pyx_n_s_stream_CDL3INSIDE; - PyObject *__pyx_n_s_stream_CDL3LINESTRIKE; - PyObject *__pyx_n_s_stream_CDL3OUTSIDE; - PyObject *__pyx_n_s_stream_CDL3STARSINSOUTH; - PyObject *__pyx_n_s_stream_CDL3WHITESOLDIERS; - PyObject *__pyx_n_s_stream_CDLABANDONEDBABY; - PyObject *__pyx_n_s_stream_CDLADVANCEBLOCK; - PyObject *__pyx_n_s_stream_CDLBELTHOLD; - PyObject *__pyx_n_s_stream_CDLBREAKAWAY; - PyObject *__pyx_n_s_stream_CDLCLOSINGMARUBOZU; - PyObject *__pyx_n_s_stream_CDLCONCEALBABYSWALL; - PyObject *__pyx_n_s_stream_CDLCOUNTERATTACK; - PyObject *__pyx_n_s_stream_CDLDARKCLOUDCOVER; - PyObject *__pyx_n_s_stream_CDLDOJI; - PyObject *__pyx_n_s_stream_CDLDOJISTAR; - PyObject *__pyx_n_s_stream_CDLDRAGONFLYDOJI; - PyObject *__pyx_n_s_stream_CDLENGULFING; - PyObject *__pyx_n_s_stream_CDLEVENINGDOJISTAR; - PyObject *__pyx_n_s_stream_CDLEVENINGSTAR; - PyObject *__pyx_n_s_stream_CDLGAPSIDESIDEWHITE; - PyObject *__pyx_n_s_stream_CDLGRAVESTONEDOJI; - PyObject *__pyx_n_s_stream_CDLHAMMER; - PyObject *__pyx_n_s_stream_CDLHANGINGMAN; - PyObject *__pyx_n_s_stream_CDLHARAMI; - PyObject *__pyx_n_s_stream_CDLHARAMICROSS; - PyObject *__pyx_n_s_stream_CDLHIGHWAVE; - PyObject *__pyx_n_s_stream_CDLHIKKAKE; - PyObject *__pyx_n_s_stream_CDLHIKKAKEMOD; - PyObject *__pyx_n_s_stream_CDLHOMINGPIGEON; - PyObject *__pyx_n_s_stream_CDLIDENTICAL3CROWS; - PyObject *__pyx_n_s_stream_CDLINNECK; - PyObject *__pyx_n_s_stream_CDLINVERTEDHAMMER; - PyObject *__pyx_n_s_stream_CDLKICKING; - PyObject *__pyx_n_s_stream_CDLKICKINGBYLENGTH; - PyObject *__pyx_n_s_stream_CDLLADDERBOTTOM; - PyObject *__pyx_n_s_stream_CDLLONGLEGGEDDOJI; - PyObject *__pyx_n_s_stream_CDLLONGLINE; - PyObject *__pyx_n_s_stream_CDLMARUBOZU; - PyObject *__pyx_n_s_stream_CDLMATCHINGLOW; - PyObject *__pyx_n_s_stream_CDLMATHOLD; - PyObject *__pyx_n_s_stream_CDLMORNINGDOJISTAR; - PyObject *__pyx_n_s_stream_CDLMORNINGSTAR; - PyObject *__pyx_n_s_stream_CDLONNECK; - PyObject *__pyx_n_s_stream_CDLPIERCING; - PyObject *__pyx_n_s_stream_CDLRICKSHAWMAN; - PyObject *__pyx_n_s_stream_CDLRISEFALL3METHODS; - PyObject *__pyx_n_s_stream_CDLSEPARATINGLINES; - PyObject *__pyx_n_s_stream_CDLSHOOTINGSTAR; - PyObject *__pyx_n_s_stream_CDLSHORTLINE; - PyObject *__pyx_n_s_stream_CDLSPINNINGTOP; - PyObject *__pyx_n_s_stream_CDLSTALLEDPATTERN; - PyObject *__pyx_n_s_stream_CDLSTICKSANDWICH; - PyObject *__pyx_n_s_stream_CDLTAKURI; - PyObject *__pyx_n_s_stream_CDLTASUKIGAP; - PyObject *__pyx_n_s_stream_CDLTHRUSTING; - PyObject *__pyx_n_s_stream_CDLTRISTAR; - PyObject *__pyx_n_s_stream_CDLUNIQUE3RIVER; - PyObject *__pyx_n_s_stream_CDLUPSIDEGAP2CROWS; - PyObject *__pyx_n_s_stream_CDLXSIDEGAP3METHODS; - PyObject *__pyx_n_s_stream_CEIL; - PyObject *__pyx_n_s_stream_CMO; - PyObject *__pyx_n_s_stream_CORREL; - PyObject *__pyx_n_s_stream_COS; - PyObject *__pyx_n_s_stream_COSH; - PyObject *__pyx_n_s_stream_DEMA; - PyObject *__pyx_n_s_stream_DIV; - PyObject *__pyx_n_s_stream_DX; - PyObject *__pyx_n_s_stream_EMA; - PyObject *__pyx_n_s_stream_EXP; - PyObject *__pyx_n_s_stream_FLOOR; - PyObject *__pyx_n_s_stream_HT_DCPERIOD; - PyObject *__pyx_n_s_stream_HT_DCPHASE; - PyObject *__pyx_n_s_stream_HT_PHASOR; - PyObject *__pyx_n_s_stream_HT_SINE; - PyObject *__pyx_n_s_stream_HT_TRENDLINE; - PyObject *__pyx_n_s_stream_HT_TRENDMODE; - PyObject *__pyx_n_s_stream_KAMA; - PyObject *__pyx_n_s_stream_LINEARREG; - PyObject *__pyx_n_s_stream_LINEARREG_ANGLE; - PyObject *__pyx_n_s_stream_LINEARREG_INTERCEPT; - PyObject *__pyx_n_s_stream_LINEARREG_SLOPE; - PyObject *__pyx_n_s_stream_LN; - PyObject *__pyx_n_s_stream_LOG10; - PyObject *__pyx_n_s_stream_MA; - PyObject *__pyx_n_s_stream_MACD; - PyObject *__pyx_n_s_stream_MACDEXT; - PyObject *__pyx_n_s_stream_MACDFIX; - PyObject *__pyx_n_s_stream_MAMA; - PyObject *__pyx_n_s_stream_MAVP; - PyObject *__pyx_n_s_stream_MAX; - PyObject *__pyx_n_s_stream_MAXINDEX; - PyObject *__pyx_n_s_stream_MEDPRICE; - PyObject *__pyx_n_s_stream_MFI; - PyObject *__pyx_n_s_stream_MIDPOINT; - PyObject *__pyx_n_s_stream_MIDPRICE; - PyObject *__pyx_n_s_stream_MIN; - PyObject *__pyx_n_s_stream_MININDEX; - PyObject *__pyx_n_s_stream_MINMAX; - PyObject *__pyx_n_s_stream_MINMAXINDEX; - PyObject *__pyx_n_s_stream_MINUS_DI; - PyObject *__pyx_n_s_stream_MINUS_DM; - PyObject *__pyx_n_s_stream_MOM; - PyObject *__pyx_n_s_stream_MULT; - PyObject *__pyx_n_s_stream_NATR; - PyObject *__pyx_n_s_stream_OBV; - PyObject *__pyx_n_s_stream_PLUS_DI; - PyObject *__pyx_n_s_stream_PLUS_DM; - PyObject *__pyx_n_s_stream_PPO; - PyObject *__pyx_n_s_stream_ROC; - PyObject *__pyx_n_s_stream_ROCP; - PyObject *__pyx_n_s_stream_ROCR; - PyObject *__pyx_n_s_stream_ROCR100; - PyObject *__pyx_n_s_stream_RSI; - PyObject *__pyx_n_s_stream_SAR; - PyObject *__pyx_n_s_stream_SAREXT; - PyObject *__pyx_n_s_stream_SIN; - PyObject *__pyx_n_s_stream_SINH; - PyObject *__pyx_n_s_stream_SMA; - PyObject *__pyx_n_s_stream_SQRT; - PyObject *__pyx_n_s_stream_STDDEV; - PyObject *__pyx_n_s_stream_STOCH; - PyObject *__pyx_n_s_stream_STOCHF; - PyObject *__pyx_n_s_stream_STOCHRSI; - PyObject *__pyx_n_s_stream_SUB; - PyObject *__pyx_n_s_stream_SUM; - PyObject *__pyx_n_s_stream_T3; - PyObject *__pyx_n_s_stream_TAN; - PyObject *__pyx_n_s_stream_TANH; - PyObject *__pyx_n_s_stream_TEMA; - PyObject *__pyx_n_s_stream_TRANGE; - PyObject *__pyx_n_s_stream_TRIMA; - PyObject *__pyx_n_s_stream_TRIX; - PyObject *__pyx_n_s_stream_TSF; - PyObject *__pyx_n_s_stream_TYPPRICE; - PyObject *__pyx_n_s_stream_ULTOSC; - PyObject *__pyx_n_s_stream_VAR; - PyObject *__pyx_n_s_stream_WCLPRICE; - PyObject *__pyx_n_s_stream_WILLR; - PyObject *__pyx_n_s_stream_WMA; PyObject *__pyx_kp_s_stream__s; PyObject *__pyx_n_s_super; PyObject *__pyx_n_s_sys; @@ -4981,7 +4728,6 @@ typedef struct { PyObject *__pyx_kp_s_talib__abstract_pxi; PyObject *__pyx_kp_s_talib__common_pxi; PyObject *__pyx_kp_s_talib__func_pxi; - PyObject *__pyx_kp_s_talib__stream_pxi; PyObject *__pyx_n_s_talib__ta_lib; PyObject *__pyx_n_s_test; PyObject *__pyx_n_s_threading; @@ -5003,7 +4749,6 @@ typedef struct { PyObject *__pyx_n_s_version; PyObject *__pyx_n_s_vfactor; PyObject *__pyx_n_s_volume; - PyObject *__pyx_n_s_volume_data; PyObject *__pyx_n_s_xrange; PyObject *__pyx_int_0; PyObject *__pyx_int_1; @@ -5120,44 +4865,6 @@ typedef struct { PyObject *__pyx_tuple__300; PyObject *__pyx_tuple__302; PyObject *__pyx_tuple__305; - PyObject *__pyx_tuple__307; - PyObject *__pyx_tuple__309; - PyObject *__pyx_tuple__311; - PyObject *__pyx_tuple__313; - PyObject *__pyx_tuple__315; - PyObject *__pyx_tuple__318; - PyObject *__pyx_tuple__320; - PyObject *__pyx_tuple__322; - PyObject *__pyx_tuple__327; - PyObject *__pyx_tuple__329; - PyObject *__pyx_tuple__331; - PyObject *__pyx_tuple__335; - PyObject *__pyx_tuple__343; - PyObject *__pyx_tuple__399; - PyObject *__pyx_tuple__412; - PyObject *__pyx_tuple__414; - PyObject *__pyx_tuple__417; - PyObject *__pyx_tuple__426; - PyObject *__pyx_tuple__428; - PyObject *__pyx_tuple__430; - PyObject *__pyx_tuple__432; - PyObject *__pyx_tuple__434; - PyObject *__pyx_tuple__436; - PyObject *__pyx_tuple__439; - PyObject *__pyx_tuple__441; - PyObject *__pyx_tuple__443; - PyObject *__pyx_tuple__449; - PyObject *__pyx_tuple__451; - PyObject *__pyx_tuple__458; - PyObject *__pyx_tuple__468; - PyObject *__pyx_tuple__470; - PyObject *__pyx_tuple__476; - PyObject *__pyx_tuple__478; - PyObject *__pyx_tuple__480; - PyObject *__pyx_tuple__482; - PyObject *__pyx_tuple__486; - PyObject *__pyx_tuple__491; - PyObject *__pyx_tuple__497; PyObject *__pyx_codeobj__14; PyObject *__pyx_codeobj__16; PyObject *__pyx_codeobj__17; @@ -5363,164 +5070,6 @@ typedef struct { PyObject *__pyx_codeobj__303; PyObject *__pyx_codeobj__304; PyObject *__pyx_codeobj__306; - PyObject *__pyx_codeobj__308; - PyObject *__pyx_codeobj__310; - PyObject *__pyx_codeobj__312; - PyObject *__pyx_codeobj__314; - PyObject *__pyx_codeobj__316; - PyObject *__pyx_codeobj__317; - PyObject *__pyx_codeobj__319; - PyObject *__pyx_codeobj__321; - PyObject *__pyx_codeobj__323; - PyObject *__pyx_codeobj__324; - PyObject *__pyx_codeobj__325; - PyObject *__pyx_codeobj__326; - PyObject *__pyx_codeobj__328; - PyObject *__pyx_codeobj__330; - PyObject *__pyx_codeobj__332; - PyObject *__pyx_codeobj__333; - PyObject *__pyx_codeobj__334; - PyObject *__pyx_codeobj__336; - PyObject *__pyx_codeobj__337; - PyObject *__pyx_codeobj__338; - PyObject *__pyx_codeobj__339; - PyObject *__pyx_codeobj__340; - PyObject *__pyx_codeobj__341; - PyObject *__pyx_codeobj__342; - PyObject *__pyx_codeobj__344; - PyObject *__pyx_codeobj__345; - PyObject *__pyx_codeobj__346; - PyObject *__pyx_codeobj__347; - PyObject *__pyx_codeobj__348; - PyObject *__pyx_codeobj__349; - PyObject *__pyx_codeobj__350; - PyObject *__pyx_codeobj__351; - PyObject *__pyx_codeobj__352; - PyObject *__pyx_codeobj__353; - PyObject *__pyx_codeobj__354; - PyObject *__pyx_codeobj__355; - PyObject *__pyx_codeobj__356; - PyObject *__pyx_codeobj__357; - PyObject *__pyx_codeobj__358; - PyObject *__pyx_codeobj__359; - PyObject *__pyx_codeobj__360; - PyObject *__pyx_codeobj__361; - PyObject *__pyx_codeobj__362; - PyObject *__pyx_codeobj__363; - PyObject *__pyx_codeobj__364; - PyObject *__pyx_codeobj__365; - PyObject *__pyx_codeobj__366; - PyObject *__pyx_codeobj__367; - PyObject *__pyx_codeobj__368; - PyObject *__pyx_codeobj__369; - PyObject *__pyx_codeobj__370; - PyObject *__pyx_codeobj__371; - PyObject *__pyx_codeobj__372; - PyObject *__pyx_codeobj__373; - PyObject *__pyx_codeobj__374; - PyObject *__pyx_codeobj__375; - PyObject *__pyx_codeobj__376; - PyObject *__pyx_codeobj__377; - PyObject *__pyx_codeobj__378; - PyObject *__pyx_codeobj__379; - PyObject *__pyx_codeobj__380; - PyObject *__pyx_codeobj__381; - PyObject *__pyx_codeobj__382; - PyObject *__pyx_codeobj__383; - PyObject *__pyx_codeobj__384; - PyObject *__pyx_codeobj__385; - PyObject *__pyx_codeobj__386; - PyObject *__pyx_codeobj__387; - PyObject *__pyx_codeobj__388; - PyObject *__pyx_codeobj__389; - PyObject *__pyx_codeobj__390; - PyObject *__pyx_codeobj__391; - PyObject *__pyx_codeobj__392; - PyObject *__pyx_codeobj__393; - PyObject *__pyx_codeobj__394; - PyObject *__pyx_codeobj__395; - PyObject *__pyx_codeobj__396; - PyObject *__pyx_codeobj__397; - PyObject *__pyx_codeobj__398; - PyObject *__pyx_codeobj__400; - PyObject *__pyx_codeobj__401; - PyObject *__pyx_codeobj__402; - PyObject *__pyx_codeobj__403; - PyObject *__pyx_codeobj__404; - PyObject *__pyx_codeobj__405; - PyObject *__pyx_codeobj__406; - PyObject *__pyx_codeobj__407; - PyObject *__pyx_codeobj__408; - PyObject *__pyx_codeobj__409; - PyObject *__pyx_codeobj__410; - PyObject *__pyx_codeobj__411; - PyObject *__pyx_codeobj__413; - PyObject *__pyx_codeobj__415; - PyObject *__pyx_codeobj__416; - PyObject *__pyx_codeobj__418; - PyObject *__pyx_codeobj__419; - PyObject *__pyx_codeobj__420; - PyObject *__pyx_codeobj__421; - PyObject *__pyx_codeobj__422; - PyObject *__pyx_codeobj__423; - PyObject *__pyx_codeobj__424; - PyObject *__pyx_codeobj__425; - PyObject *__pyx_codeobj__427; - PyObject *__pyx_codeobj__429; - PyObject *__pyx_codeobj__431; - PyObject *__pyx_codeobj__433; - PyObject *__pyx_codeobj__435; - PyObject *__pyx_codeobj__437; - PyObject *__pyx_codeobj__438; - PyObject *__pyx_codeobj__440; - PyObject *__pyx_codeobj__442; - PyObject *__pyx_codeobj__444; - PyObject *__pyx_codeobj__445; - PyObject *__pyx_codeobj__446; - PyObject *__pyx_codeobj__447; - PyObject *__pyx_codeobj__448; - PyObject *__pyx_codeobj__450; - PyObject *__pyx_codeobj__452; - PyObject *__pyx_codeobj__453; - PyObject *__pyx_codeobj__454; - PyObject *__pyx_codeobj__455; - PyObject *__pyx_codeobj__456; - PyObject *__pyx_codeobj__457; - PyObject *__pyx_codeobj__459; - PyObject *__pyx_codeobj__460; - PyObject *__pyx_codeobj__461; - PyObject *__pyx_codeobj__462; - PyObject *__pyx_codeobj__463; - PyObject *__pyx_codeobj__464; - PyObject *__pyx_codeobj__465; - PyObject *__pyx_codeobj__466; - PyObject *__pyx_codeobj__467; - PyObject *__pyx_codeobj__469; - PyObject *__pyx_codeobj__471; - PyObject *__pyx_codeobj__472; - PyObject *__pyx_codeobj__473; - PyObject *__pyx_codeobj__474; - PyObject *__pyx_codeobj__475; - PyObject *__pyx_codeobj__477; - PyObject *__pyx_codeobj__479; - PyObject *__pyx_codeobj__481; - PyObject *__pyx_codeobj__483; - PyObject *__pyx_codeobj__484; - PyObject *__pyx_codeobj__485; - PyObject *__pyx_codeobj__487; - PyObject *__pyx_codeobj__488; - PyObject *__pyx_codeobj__489; - PyObject *__pyx_codeobj__490; - PyObject *__pyx_codeobj__492; - PyObject *__pyx_codeobj__493; - PyObject *__pyx_codeobj__494; - PyObject *__pyx_codeobj__495; - PyObject *__pyx_codeobj__496; - PyObject *__pyx_codeobj__498; - PyObject *__pyx_codeobj__499; - PyObject *__pyx_codeobj__500; - PyObject *__pyx_codeobj__501; - PyObject *__pyx_codeobj__502; } __pyx_mstate; #if CYTHON_USE_MODULE_STATE @@ -6046,8 +5595,8 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_kp_s__11); Py_CLEAR(clear_module_state->__pyx_kp_s__12); Py_CLEAR(clear_module_state->__pyx_n_s__240); + Py_CLEAR(clear_module_state->__pyx_n_s__307); Py_CLEAR(clear_module_state->__pyx_kp_u__43); - Py_CLEAR(clear_module_state->__pyx_n_s__503); Py_CLEAR(clear_module_state->__pyx_kp_s__6); Py_CLEAR(clear_module_state->__pyx_kp_s__7); Py_CLEAR(clear_module_state->__pyx_kp_s__9); @@ -6077,7 +5626,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); Py_CLEAR(clear_module_state->__pyx_n_s_clone); Py_CLEAR(clear_module_state->__pyx_n_s_close); - Py_CLEAR(clear_module_state->__pyx_n_s_close_data); Py_CLEAR(clear_module_state->__pyx_n_s_collections); Py_CLEAR(clear_module_state->__pyx_n_s_column_stack); Py_CLEAR(clear_module_state->__pyx_n_s_columns); @@ -6122,7 +5670,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_groups); Py_CLEAR(clear_module_state->__pyx_n_s_help); Py_CLEAR(clear_module_state->__pyx_n_s_high); - Py_CLEAR(clear_module_state->__pyx_n_s_high_data); Py_CLEAR(clear_module_state->__pyx_n_s_holder); Py_CLEAR(clear_module_state->__pyx_n_s_i); Py_CLEAR(clear_module_state->__pyx_n_s_id); @@ -6161,7 +5708,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_lookback); Py_CLEAR(clear_module_state->__pyx_n_s_lookup); Py_CLEAR(clear_module_state->__pyx_n_s_low); - Py_CLEAR(clear_module_state->__pyx_n_s_low_data); Py_CLEAR(clear_module_state->__pyx_n_s_lower); Py_CLEAR(clear_module_state->__pyx_n_s_main); Py_CLEAR(clear_module_state->__pyx_n_s_math); @@ -6191,13 +5737,12 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_num_opt_inputs); Py_CLEAR(clear_module_state->__pyx_n_s_num_outputs); Py_CLEAR(clear_module_state->__pyx_n_s_numpy); - Py_CLEAR(clear_module_state->__pyx_kp_s_numpy_core_multiarray_failed_to); - Py_CLEAR(clear_module_state->__pyx_kp_s_numpy_core_umath_failed_to_impor); + Py_CLEAR(clear_module_state->__pyx_kp_s_numpy__core_multiarray_failed_to); + Py_CLEAR(clear_module_state->__pyx_kp_s_numpy__core_umath_failed_to_impo); Py_CLEAR(clear_module_state->__pyx_n_s_object); Py_CLEAR(clear_module_state->__pyx_n_s_offsetonreverse); Py_CLEAR(clear_module_state->__pyx_n_s_open); Py_CLEAR(clear_module_state->__pyx_n_s_openInterest); - Py_CLEAR(clear_module_state->__pyx_n_s_open_data); Py_CLEAR(clear_module_state->__pyx_n_s_optIn); Py_CLEAR(clear_module_state->__pyx_n_s_opt_input); Py_CLEAR(clear_module_state->__pyx_n_s_opt_input_values); @@ -6247,7 +5792,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_penetration); Py_CLEAR(clear_module_state->__pyx_n_s_period); Py_CLEAR(clear_module_state->__pyx_n_s_periods); - Py_CLEAR(clear_module_state->__pyx_n_s_periods_data); Py_CLEAR(clear_module_state->__pyx_n_s_polars); Py_CLEAR(clear_module_state->__pyx_n_s_pop); Py_CLEAR(clear_module_state->__pyx_n_s_prepare); @@ -6263,10 +5807,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_rangetype); Py_CLEAR(clear_module_state->__pyx_n_s_real); Py_CLEAR(clear_module_state->__pyx_n_s_real0); - Py_CLEAR(clear_module_state->__pyx_n_s_real0_data); Py_CLEAR(clear_module_state->__pyx_n_s_real1); - Py_CLEAR(clear_module_state->__pyx_n_s_real1_data); - Py_CLEAR(clear_module_state->__pyx_n_s_real_data); Py_CLEAR(clear_module_state->__pyx_n_s_replace); Py_CLEAR(clear_module_state->__pyx_n_s_repr); Py_CLEAR(clear_module_state->__pyx_n_s_results); @@ -6304,164 +5845,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_startvalue); Py_CLEAR(clear_module_state->__pyx_n_s_str); Py_CLEAR(clear_module_state->__pyx_n_s_str2bytes); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ACOS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_AD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADOSC); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADXR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_APO); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_AROON); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_AROONOSC); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ASIN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ATAN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ATR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_AVGPRICE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_BBANDS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_BETA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_BOP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CCI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL2CROWS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3BLACKCROWS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3INSIDE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3LINESTRIKE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3OUTSIDE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3STARSINSOUTH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3WHITESOLDIERS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLABANDONEDBABY); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLADVANCEBLOCK); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLBELTHOLD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLBREAKAWAY); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCLOSINGMARUBOZU); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCONCEALBABYSWALL); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCOUNTERATTACK); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDARKCLOUDCOVER); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDOJI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDOJISTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDRAGONFLYDOJI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLENGULFING); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLEVENINGDOJISTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLEVENINGSTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLGRAVESTONEDOJI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHAMMER); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHANGINGMAN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHARAMI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHARAMICROSS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIGHWAVE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIKKAKE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIKKAKEMOD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHOMINGPIGEON); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLIDENTICAL3CROWS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLINNECK); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLINVERTEDHAMMER); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLKICKING); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLKICKINGBYLENGTH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLADDERBOTTOM); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLONGLEGGEDDOJI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLONGLINE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMARUBOZU); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMATCHINGLOW); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMATHOLD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMORNINGDOJISTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMORNINGSTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLONNECK); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLPIERCING); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLRICKSHAWMAN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLRISEFALL3METHODS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSEPARATINGLINES); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSHOOTINGSTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSHORTLINE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSPINNINGTOP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSTALLEDPATTERN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSTICKSANDWICH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTAKURI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTASUKIGAP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTHRUSTING); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTRISTAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLUNIQUE3RIVER); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLXSIDEGAP3METHODS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CEIL); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CMO); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_CORREL); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_COS); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_COSH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_DEMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_DIV); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_DX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_EMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_EXP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_FLOOR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_DCPERIOD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_DCPHASE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_PHASOR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_SINE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_TRENDLINE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_TRENDMODE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_KAMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_ANGLE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_INTERCEPT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_SLOPE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_LOG10); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACD); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACDEXT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACDFIX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAVP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAXINDEX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MEDPRICE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MFI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIDPOINT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIDPRICE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MININDEX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINMAX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINMAXINDEX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINUS_DI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINUS_DM); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MOM); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_MULT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_NATR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_OBV); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_PLUS_DI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_PLUS_DM); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_PPO); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROC); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCP); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCR100); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_RSI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SAREXT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SIN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SINH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SQRT); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_STDDEV); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCHF); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCHRSI); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SUB); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_SUM); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_T3); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TAN); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TANH); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TEMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRANGE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRIMA); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRIX); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TSF); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_TYPPRICE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_ULTOSC); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_VAR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_WCLPRICE); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_WILLR); - Py_CLEAR(clear_module_state->__pyx_n_s_stream_WMA); Py_CLEAR(clear_module_state->__pyx_kp_s_stream__s); Py_CLEAR(clear_module_state->__pyx_n_s_super); Py_CLEAR(clear_module_state->__pyx_n_s_sys); @@ -6486,7 +5869,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_kp_s_talib__abstract_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_talib__common_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_talib__func_pxi); - Py_CLEAR(clear_module_state->__pyx_kp_s_talib__stream_pxi); Py_CLEAR(clear_module_state->__pyx_n_s_talib__ta_lib); Py_CLEAR(clear_module_state->__pyx_n_s_test); Py_CLEAR(clear_module_state->__pyx_n_s_threading); @@ -6508,7 +5890,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_version); Py_CLEAR(clear_module_state->__pyx_n_s_vfactor); Py_CLEAR(clear_module_state->__pyx_n_s_volume); - Py_CLEAR(clear_module_state->__pyx_n_s_volume_data); Py_CLEAR(clear_module_state->__pyx_n_s_xrange); Py_CLEAR(clear_module_state->__pyx_int_0); Py_CLEAR(clear_module_state->__pyx_int_1); @@ -6625,44 +6006,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_tuple__300); Py_CLEAR(clear_module_state->__pyx_tuple__302); Py_CLEAR(clear_module_state->__pyx_tuple__305); - Py_CLEAR(clear_module_state->__pyx_tuple__307); - Py_CLEAR(clear_module_state->__pyx_tuple__309); - Py_CLEAR(clear_module_state->__pyx_tuple__311); - Py_CLEAR(clear_module_state->__pyx_tuple__313); - Py_CLEAR(clear_module_state->__pyx_tuple__315); - Py_CLEAR(clear_module_state->__pyx_tuple__318); - Py_CLEAR(clear_module_state->__pyx_tuple__320); - Py_CLEAR(clear_module_state->__pyx_tuple__322); - Py_CLEAR(clear_module_state->__pyx_tuple__327); - Py_CLEAR(clear_module_state->__pyx_tuple__329); - Py_CLEAR(clear_module_state->__pyx_tuple__331); - Py_CLEAR(clear_module_state->__pyx_tuple__335); - Py_CLEAR(clear_module_state->__pyx_tuple__343); - Py_CLEAR(clear_module_state->__pyx_tuple__399); - Py_CLEAR(clear_module_state->__pyx_tuple__412); - Py_CLEAR(clear_module_state->__pyx_tuple__414); - Py_CLEAR(clear_module_state->__pyx_tuple__417); - Py_CLEAR(clear_module_state->__pyx_tuple__426); - Py_CLEAR(clear_module_state->__pyx_tuple__428); - Py_CLEAR(clear_module_state->__pyx_tuple__430); - Py_CLEAR(clear_module_state->__pyx_tuple__432); - Py_CLEAR(clear_module_state->__pyx_tuple__434); - Py_CLEAR(clear_module_state->__pyx_tuple__436); - Py_CLEAR(clear_module_state->__pyx_tuple__439); - Py_CLEAR(clear_module_state->__pyx_tuple__441); - Py_CLEAR(clear_module_state->__pyx_tuple__443); - Py_CLEAR(clear_module_state->__pyx_tuple__449); - Py_CLEAR(clear_module_state->__pyx_tuple__451); - Py_CLEAR(clear_module_state->__pyx_tuple__458); - Py_CLEAR(clear_module_state->__pyx_tuple__468); - Py_CLEAR(clear_module_state->__pyx_tuple__470); - Py_CLEAR(clear_module_state->__pyx_tuple__476); - Py_CLEAR(clear_module_state->__pyx_tuple__478); - Py_CLEAR(clear_module_state->__pyx_tuple__480); - Py_CLEAR(clear_module_state->__pyx_tuple__482); - Py_CLEAR(clear_module_state->__pyx_tuple__486); - Py_CLEAR(clear_module_state->__pyx_tuple__491); - Py_CLEAR(clear_module_state->__pyx_tuple__497); Py_CLEAR(clear_module_state->__pyx_codeobj__14); Py_CLEAR(clear_module_state->__pyx_codeobj__16); Py_CLEAR(clear_module_state->__pyx_codeobj__17); @@ -6868,164 +6211,6 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_codeobj__303); Py_CLEAR(clear_module_state->__pyx_codeobj__304); Py_CLEAR(clear_module_state->__pyx_codeobj__306); - Py_CLEAR(clear_module_state->__pyx_codeobj__308); - Py_CLEAR(clear_module_state->__pyx_codeobj__310); - Py_CLEAR(clear_module_state->__pyx_codeobj__312); - Py_CLEAR(clear_module_state->__pyx_codeobj__314); - Py_CLEAR(clear_module_state->__pyx_codeobj__316); - Py_CLEAR(clear_module_state->__pyx_codeobj__317); - Py_CLEAR(clear_module_state->__pyx_codeobj__319); - Py_CLEAR(clear_module_state->__pyx_codeobj__321); - Py_CLEAR(clear_module_state->__pyx_codeobj__323); - Py_CLEAR(clear_module_state->__pyx_codeobj__324); - Py_CLEAR(clear_module_state->__pyx_codeobj__325); - Py_CLEAR(clear_module_state->__pyx_codeobj__326); - Py_CLEAR(clear_module_state->__pyx_codeobj__328); - Py_CLEAR(clear_module_state->__pyx_codeobj__330); - Py_CLEAR(clear_module_state->__pyx_codeobj__332); - Py_CLEAR(clear_module_state->__pyx_codeobj__333); - Py_CLEAR(clear_module_state->__pyx_codeobj__334); - Py_CLEAR(clear_module_state->__pyx_codeobj__336); - Py_CLEAR(clear_module_state->__pyx_codeobj__337); - Py_CLEAR(clear_module_state->__pyx_codeobj__338); - Py_CLEAR(clear_module_state->__pyx_codeobj__339); - Py_CLEAR(clear_module_state->__pyx_codeobj__340); - Py_CLEAR(clear_module_state->__pyx_codeobj__341); - Py_CLEAR(clear_module_state->__pyx_codeobj__342); - Py_CLEAR(clear_module_state->__pyx_codeobj__344); - Py_CLEAR(clear_module_state->__pyx_codeobj__345); - Py_CLEAR(clear_module_state->__pyx_codeobj__346); - Py_CLEAR(clear_module_state->__pyx_codeobj__347); - Py_CLEAR(clear_module_state->__pyx_codeobj__348); - Py_CLEAR(clear_module_state->__pyx_codeobj__349); - Py_CLEAR(clear_module_state->__pyx_codeobj__350); - Py_CLEAR(clear_module_state->__pyx_codeobj__351); - Py_CLEAR(clear_module_state->__pyx_codeobj__352); - Py_CLEAR(clear_module_state->__pyx_codeobj__353); - Py_CLEAR(clear_module_state->__pyx_codeobj__354); - Py_CLEAR(clear_module_state->__pyx_codeobj__355); - Py_CLEAR(clear_module_state->__pyx_codeobj__356); - Py_CLEAR(clear_module_state->__pyx_codeobj__357); - Py_CLEAR(clear_module_state->__pyx_codeobj__358); - Py_CLEAR(clear_module_state->__pyx_codeobj__359); - Py_CLEAR(clear_module_state->__pyx_codeobj__360); - Py_CLEAR(clear_module_state->__pyx_codeobj__361); - Py_CLEAR(clear_module_state->__pyx_codeobj__362); - Py_CLEAR(clear_module_state->__pyx_codeobj__363); - Py_CLEAR(clear_module_state->__pyx_codeobj__364); - Py_CLEAR(clear_module_state->__pyx_codeobj__365); - Py_CLEAR(clear_module_state->__pyx_codeobj__366); - Py_CLEAR(clear_module_state->__pyx_codeobj__367); - Py_CLEAR(clear_module_state->__pyx_codeobj__368); - Py_CLEAR(clear_module_state->__pyx_codeobj__369); - Py_CLEAR(clear_module_state->__pyx_codeobj__370); - Py_CLEAR(clear_module_state->__pyx_codeobj__371); - Py_CLEAR(clear_module_state->__pyx_codeobj__372); - Py_CLEAR(clear_module_state->__pyx_codeobj__373); - Py_CLEAR(clear_module_state->__pyx_codeobj__374); - Py_CLEAR(clear_module_state->__pyx_codeobj__375); - Py_CLEAR(clear_module_state->__pyx_codeobj__376); - Py_CLEAR(clear_module_state->__pyx_codeobj__377); - Py_CLEAR(clear_module_state->__pyx_codeobj__378); - Py_CLEAR(clear_module_state->__pyx_codeobj__379); - Py_CLEAR(clear_module_state->__pyx_codeobj__380); - Py_CLEAR(clear_module_state->__pyx_codeobj__381); - Py_CLEAR(clear_module_state->__pyx_codeobj__382); - Py_CLEAR(clear_module_state->__pyx_codeobj__383); - Py_CLEAR(clear_module_state->__pyx_codeobj__384); - Py_CLEAR(clear_module_state->__pyx_codeobj__385); - Py_CLEAR(clear_module_state->__pyx_codeobj__386); - Py_CLEAR(clear_module_state->__pyx_codeobj__387); - Py_CLEAR(clear_module_state->__pyx_codeobj__388); - Py_CLEAR(clear_module_state->__pyx_codeobj__389); - Py_CLEAR(clear_module_state->__pyx_codeobj__390); - Py_CLEAR(clear_module_state->__pyx_codeobj__391); - Py_CLEAR(clear_module_state->__pyx_codeobj__392); - Py_CLEAR(clear_module_state->__pyx_codeobj__393); - Py_CLEAR(clear_module_state->__pyx_codeobj__394); - Py_CLEAR(clear_module_state->__pyx_codeobj__395); - Py_CLEAR(clear_module_state->__pyx_codeobj__396); - Py_CLEAR(clear_module_state->__pyx_codeobj__397); - Py_CLEAR(clear_module_state->__pyx_codeobj__398); - Py_CLEAR(clear_module_state->__pyx_codeobj__400); - Py_CLEAR(clear_module_state->__pyx_codeobj__401); - Py_CLEAR(clear_module_state->__pyx_codeobj__402); - Py_CLEAR(clear_module_state->__pyx_codeobj__403); - Py_CLEAR(clear_module_state->__pyx_codeobj__404); - Py_CLEAR(clear_module_state->__pyx_codeobj__405); - Py_CLEAR(clear_module_state->__pyx_codeobj__406); - Py_CLEAR(clear_module_state->__pyx_codeobj__407); - Py_CLEAR(clear_module_state->__pyx_codeobj__408); - Py_CLEAR(clear_module_state->__pyx_codeobj__409); - Py_CLEAR(clear_module_state->__pyx_codeobj__410); - Py_CLEAR(clear_module_state->__pyx_codeobj__411); - Py_CLEAR(clear_module_state->__pyx_codeobj__413); - Py_CLEAR(clear_module_state->__pyx_codeobj__415); - Py_CLEAR(clear_module_state->__pyx_codeobj__416); - Py_CLEAR(clear_module_state->__pyx_codeobj__418); - Py_CLEAR(clear_module_state->__pyx_codeobj__419); - Py_CLEAR(clear_module_state->__pyx_codeobj__420); - Py_CLEAR(clear_module_state->__pyx_codeobj__421); - Py_CLEAR(clear_module_state->__pyx_codeobj__422); - Py_CLEAR(clear_module_state->__pyx_codeobj__423); - Py_CLEAR(clear_module_state->__pyx_codeobj__424); - Py_CLEAR(clear_module_state->__pyx_codeobj__425); - Py_CLEAR(clear_module_state->__pyx_codeobj__427); - Py_CLEAR(clear_module_state->__pyx_codeobj__429); - Py_CLEAR(clear_module_state->__pyx_codeobj__431); - Py_CLEAR(clear_module_state->__pyx_codeobj__433); - Py_CLEAR(clear_module_state->__pyx_codeobj__435); - Py_CLEAR(clear_module_state->__pyx_codeobj__437); - Py_CLEAR(clear_module_state->__pyx_codeobj__438); - Py_CLEAR(clear_module_state->__pyx_codeobj__440); - Py_CLEAR(clear_module_state->__pyx_codeobj__442); - Py_CLEAR(clear_module_state->__pyx_codeobj__444); - Py_CLEAR(clear_module_state->__pyx_codeobj__445); - Py_CLEAR(clear_module_state->__pyx_codeobj__446); - Py_CLEAR(clear_module_state->__pyx_codeobj__447); - Py_CLEAR(clear_module_state->__pyx_codeobj__448); - Py_CLEAR(clear_module_state->__pyx_codeobj__450); - Py_CLEAR(clear_module_state->__pyx_codeobj__452); - Py_CLEAR(clear_module_state->__pyx_codeobj__453); - Py_CLEAR(clear_module_state->__pyx_codeobj__454); - Py_CLEAR(clear_module_state->__pyx_codeobj__455); - Py_CLEAR(clear_module_state->__pyx_codeobj__456); - Py_CLEAR(clear_module_state->__pyx_codeobj__457); - Py_CLEAR(clear_module_state->__pyx_codeobj__459); - Py_CLEAR(clear_module_state->__pyx_codeobj__460); - Py_CLEAR(clear_module_state->__pyx_codeobj__461); - Py_CLEAR(clear_module_state->__pyx_codeobj__462); - Py_CLEAR(clear_module_state->__pyx_codeobj__463); - Py_CLEAR(clear_module_state->__pyx_codeobj__464); - Py_CLEAR(clear_module_state->__pyx_codeobj__465); - Py_CLEAR(clear_module_state->__pyx_codeobj__466); - Py_CLEAR(clear_module_state->__pyx_codeobj__467); - Py_CLEAR(clear_module_state->__pyx_codeobj__469); - Py_CLEAR(clear_module_state->__pyx_codeobj__471); - Py_CLEAR(clear_module_state->__pyx_codeobj__472); - Py_CLEAR(clear_module_state->__pyx_codeobj__473); - Py_CLEAR(clear_module_state->__pyx_codeobj__474); - Py_CLEAR(clear_module_state->__pyx_codeobj__475); - Py_CLEAR(clear_module_state->__pyx_codeobj__477); - Py_CLEAR(clear_module_state->__pyx_codeobj__479); - Py_CLEAR(clear_module_state->__pyx_codeobj__481); - Py_CLEAR(clear_module_state->__pyx_codeobj__483); - Py_CLEAR(clear_module_state->__pyx_codeobj__484); - Py_CLEAR(clear_module_state->__pyx_codeobj__485); - Py_CLEAR(clear_module_state->__pyx_codeobj__487); - Py_CLEAR(clear_module_state->__pyx_codeobj__488); - Py_CLEAR(clear_module_state->__pyx_codeobj__489); - Py_CLEAR(clear_module_state->__pyx_codeobj__490); - Py_CLEAR(clear_module_state->__pyx_codeobj__492); - Py_CLEAR(clear_module_state->__pyx_codeobj__493); - Py_CLEAR(clear_module_state->__pyx_codeobj__494); - Py_CLEAR(clear_module_state->__pyx_codeobj__495); - Py_CLEAR(clear_module_state->__pyx_codeobj__496); - Py_CLEAR(clear_module_state->__pyx_codeobj__498); - Py_CLEAR(clear_module_state->__pyx_codeobj__499); - Py_CLEAR(clear_module_state->__pyx_codeobj__500); - Py_CLEAR(clear_module_state->__pyx_codeobj__501); - Py_CLEAR(clear_module_state->__pyx_codeobj__502); return 0; } #endif @@ -7529,8 +6714,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_kp_s__11); Py_VISIT(traverse_module_state->__pyx_kp_s__12); Py_VISIT(traverse_module_state->__pyx_n_s__240); + Py_VISIT(traverse_module_state->__pyx_n_s__307); Py_VISIT(traverse_module_state->__pyx_kp_u__43); - Py_VISIT(traverse_module_state->__pyx_n_s__503); Py_VISIT(traverse_module_state->__pyx_kp_s__6); Py_VISIT(traverse_module_state->__pyx_kp_s__7); Py_VISIT(traverse_module_state->__pyx_kp_s__9); @@ -7560,7 +6745,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); Py_VISIT(traverse_module_state->__pyx_n_s_clone); Py_VISIT(traverse_module_state->__pyx_n_s_close); - Py_VISIT(traverse_module_state->__pyx_n_s_close_data); Py_VISIT(traverse_module_state->__pyx_n_s_collections); Py_VISIT(traverse_module_state->__pyx_n_s_column_stack); Py_VISIT(traverse_module_state->__pyx_n_s_columns); @@ -7605,7 +6789,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_groups); Py_VISIT(traverse_module_state->__pyx_n_s_help); Py_VISIT(traverse_module_state->__pyx_n_s_high); - Py_VISIT(traverse_module_state->__pyx_n_s_high_data); Py_VISIT(traverse_module_state->__pyx_n_s_holder); Py_VISIT(traverse_module_state->__pyx_n_s_i); Py_VISIT(traverse_module_state->__pyx_n_s_id); @@ -7644,7 +6827,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_lookback); Py_VISIT(traverse_module_state->__pyx_n_s_lookup); Py_VISIT(traverse_module_state->__pyx_n_s_low); - Py_VISIT(traverse_module_state->__pyx_n_s_low_data); Py_VISIT(traverse_module_state->__pyx_n_s_lower); Py_VISIT(traverse_module_state->__pyx_n_s_main); Py_VISIT(traverse_module_state->__pyx_n_s_math); @@ -7674,13 +6856,12 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_num_opt_inputs); Py_VISIT(traverse_module_state->__pyx_n_s_num_outputs); Py_VISIT(traverse_module_state->__pyx_n_s_numpy); - Py_VISIT(traverse_module_state->__pyx_kp_s_numpy_core_multiarray_failed_to); - Py_VISIT(traverse_module_state->__pyx_kp_s_numpy_core_umath_failed_to_impor); + Py_VISIT(traverse_module_state->__pyx_kp_s_numpy__core_multiarray_failed_to); + Py_VISIT(traverse_module_state->__pyx_kp_s_numpy__core_umath_failed_to_impo); Py_VISIT(traverse_module_state->__pyx_n_s_object); Py_VISIT(traverse_module_state->__pyx_n_s_offsetonreverse); Py_VISIT(traverse_module_state->__pyx_n_s_open); Py_VISIT(traverse_module_state->__pyx_n_s_openInterest); - Py_VISIT(traverse_module_state->__pyx_n_s_open_data); Py_VISIT(traverse_module_state->__pyx_n_s_optIn); Py_VISIT(traverse_module_state->__pyx_n_s_opt_input); Py_VISIT(traverse_module_state->__pyx_n_s_opt_input_values); @@ -7730,7 +6911,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_penetration); Py_VISIT(traverse_module_state->__pyx_n_s_period); Py_VISIT(traverse_module_state->__pyx_n_s_periods); - Py_VISIT(traverse_module_state->__pyx_n_s_periods_data); Py_VISIT(traverse_module_state->__pyx_n_s_polars); Py_VISIT(traverse_module_state->__pyx_n_s_pop); Py_VISIT(traverse_module_state->__pyx_n_s_prepare); @@ -7746,10 +6926,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_rangetype); Py_VISIT(traverse_module_state->__pyx_n_s_real); Py_VISIT(traverse_module_state->__pyx_n_s_real0); - Py_VISIT(traverse_module_state->__pyx_n_s_real0_data); Py_VISIT(traverse_module_state->__pyx_n_s_real1); - Py_VISIT(traverse_module_state->__pyx_n_s_real1_data); - Py_VISIT(traverse_module_state->__pyx_n_s_real_data); Py_VISIT(traverse_module_state->__pyx_n_s_replace); Py_VISIT(traverse_module_state->__pyx_n_s_repr); Py_VISIT(traverse_module_state->__pyx_n_s_results); @@ -7787,164 +6964,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_startvalue); Py_VISIT(traverse_module_state->__pyx_n_s_str); Py_VISIT(traverse_module_state->__pyx_n_s_str2bytes); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ACOS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_AD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADOSC); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADXR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_APO); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_AROON); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_AROONOSC); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ASIN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ATAN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ATR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_AVGPRICE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_BBANDS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_BETA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_BOP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CCI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL2CROWS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3BLACKCROWS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3INSIDE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3LINESTRIKE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3OUTSIDE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3STARSINSOUTH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3WHITESOLDIERS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLABANDONEDBABY); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLADVANCEBLOCK); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLBELTHOLD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLBREAKAWAY); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCLOSINGMARUBOZU); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCONCEALBABYSWALL); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCOUNTERATTACK); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDARKCLOUDCOVER); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDOJI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDOJISTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDRAGONFLYDOJI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLENGULFING); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLEVENINGDOJISTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLEVENINGSTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLGRAVESTONEDOJI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHAMMER); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHANGINGMAN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHARAMI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHARAMICROSS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIGHWAVE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIKKAKE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIKKAKEMOD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHOMINGPIGEON); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLIDENTICAL3CROWS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLINNECK); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLINVERTEDHAMMER); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLKICKING); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLKICKINGBYLENGTH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLADDERBOTTOM); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLONGLEGGEDDOJI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLONGLINE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMARUBOZU); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMATCHINGLOW); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMATHOLD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMORNINGDOJISTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMORNINGSTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLONNECK); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLPIERCING); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLRICKSHAWMAN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLRISEFALL3METHODS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSEPARATINGLINES); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSHOOTINGSTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSHORTLINE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSPINNINGTOP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSTALLEDPATTERN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSTICKSANDWICH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTAKURI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTASUKIGAP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTHRUSTING); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTRISTAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLUNIQUE3RIVER); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLXSIDEGAP3METHODS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CEIL); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CMO); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_CORREL); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_COS); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_COSH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_DEMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_DIV); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_DX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_EMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_EXP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_FLOOR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_DCPERIOD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_DCPHASE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_PHASOR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_SINE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_TRENDLINE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_TRENDMODE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_KAMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_ANGLE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_INTERCEPT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_SLOPE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_LOG10); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACD); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACDEXT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACDFIX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAVP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAXINDEX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MEDPRICE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MFI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIDPOINT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIDPRICE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MININDEX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINMAX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINMAXINDEX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINUS_DI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINUS_DM); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MOM); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_MULT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_NATR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_OBV); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_PLUS_DI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_PLUS_DM); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_PPO); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROC); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCP); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCR100); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_RSI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SAREXT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SIN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SINH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SQRT); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_STDDEV); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCHF); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCHRSI); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SUB); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_SUM); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_T3); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TAN); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TANH); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TEMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRANGE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRIMA); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRIX); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TSF); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_TYPPRICE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_ULTOSC); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_VAR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_WCLPRICE); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_WILLR); - Py_VISIT(traverse_module_state->__pyx_n_s_stream_WMA); Py_VISIT(traverse_module_state->__pyx_kp_s_stream__s); Py_VISIT(traverse_module_state->__pyx_n_s_super); Py_VISIT(traverse_module_state->__pyx_n_s_sys); @@ -7969,7 +6988,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_kp_s_talib__abstract_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_talib__common_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_talib__func_pxi); - Py_VISIT(traverse_module_state->__pyx_kp_s_talib__stream_pxi); Py_VISIT(traverse_module_state->__pyx_n_s_talib__ta_lib); Py_VISIT(traverse_module_state->__pyx_n_s_test); Py_VISIT(traverse_module_state->__pyx_n_s_threading); @@ -7991,7 +7009,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_version); Py_VISIT(traverse_module_state->__pyx_n_s_vfactor); Py_VISIT(traverse_module_state->__pyx_n_s_volume); - Py_VISIT(traverse_module_state->__pyx_n_s_volume_data); Py_VISIT(traverse_module_state->__pyx_n_s_xrange); Py_VISIT(traverse_module_state->__pyx_int_0); Py_VISIT(traverse_module_state->__pyx_int_1); @@ -8108,44 +7125,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_tuple__300); Py_VISIT(traverse_module_state->__pyx_tuple__302); Py_VISIT(traverse_module_state->__pyx_tuple__305); - Py_VISIT(traverse_module_state->__pyx_tuple__307); - Py_VISIT(traverse_module_state->__pyx_tuple__309); - Py_VISIT(traverse_module_state->__pyx_tuple__311); - Py_VISIT(traverse_module_state->__pyx_tuple__313); - Py_VISIT(traverse_module_state->__pyx_tuple__315); - Py_VISIT(traverse_module_state->__pyx_tuple__318); - Py_VISIT(traverse_module_state->__pyx_tuple__320); - Py_VISIT(traverse_module_state->__pyx_tuple__322); - Py_VISIT(traverse_module_state->__pyx_tuple__327); - Py_VISIT(traverse_module_state->__pyx_tuple__329); - Py_VISIT(traverse_module_state->__pyx_tuple__331); - Py_VISIT(traverse_module_state->__pyx_tuple__335); - Py_VISIT(traverse_module_state->__pyx_tuple__343); - Py_VISIT(traverse_module_state->__pyx_tuple__399); - Py_VISIT(traverse_module_state->__pyx_tuple__412); - Py_VISIT(traverse_module_state->__pyx_tuple__414); - Py_VISIT(traverse_module_state->__pyx_tuple__417); - Py_VISIT(traverse_module_state->__pyx_tuple__426); - Py_VISIT(traverse_module_state->__pyx_tuple__428); - Py_VISIT(traverse_module_state->__pyx_tuple__430); - Py_VISIT(traverse_module_state->__pyx_tuple__432); - Py_VISIT(traverse_module_state->__pyx_tuple__434); - Py_VISIT(traverse_module_state->__pyx_tuple__436); - Py_VISIT(traverse_module_state->__pyx_tuple__439); - Py_VISIT(traverse_module_state->__pyx_tuple__441); - Py_VISIT(traverse_module_state->__pyx_tuple__443); - Py_VISIT(traverse_module_state->__pyx_tuple__449); - Py_VISIT(traverse_module_state->__pyx_tuple__451); - Py_VISIT(traverse_module_state->__pyx_tuple__458); - Py_VISIT(traverse_module_state->__pyx_tuple__468); - Py_VISIT(traverse_module_state->__pyx_tuple__470); - Py_VISIT(traverse_module_state->__pyx_tuple__476); - Py_VISIT(traverse_module_state->__pyx_tuple__478); - Py_VISIT(traverse_module_state->__pyx_tuple__480); - Py_VISIT(traverse_module_state->__pyx_tuple__482); - Py_VISIT(traverse_module_state->__pyx_tuple__486); - Py_VISIT(traverse_module_state->__pyx_tuple__491); - Py_VISIT(traverse_module_state->__pyx_tuple__497); Py_VISIT(traverse_module_state->__pyx_codeobj__14); Py_VISIT(traverse_module_state->__pyx_codeobj__16); Py_VISIT(traverse_module_state->__pyx_codeobj__17); @@ -8351,164 +7330,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_codeobj__303); Py_VISIT(traverse_module_state->__pyx_codeobj__304); Py_VISIT(traverse_module_state->__pyx_codeobj__306); - Py_VISIT(traverse_module_state->__pyx_codeobj__308); - Py_VISIT(traverse_module_state->__pyx_codeobj__310); - Py_VISIT(traverse_module_state->__pyx_codeobj__312); - Py_VISIT(traverse_module_state->__pyx_codeobj__314); - Py_VISIT(traverse_module_state->__pyx_codeobj__316); - Py_VISIT(traverse_module_state->__pyx_codeobj__317); - Py_VISIT(traverse_module_state->__pyx_codeobj__319); - Py_VISIT(traverse_module_state->__pyx_codeobj__321); - Py_VISIT(traverse_module_state->__pyx_codeobj__323); - Py_VISIT(traverse_module_state->__pyx_codeobj__324); - Py_VISIT(traverse_module_state->__pyx_codeobj__325); - Py_VISIT(traverse_module_state->__pyx_codeobj__326); - Py_VISIT(traverse_module_state->__pyx_codeobj__328); - Py_VISIT(traverse_module_state->__pyx_codeobj__330); - Py_VISIT(traverse_module_state->__pyx_codeobj__332); - Py_VISIT(traverse_module_state->__pyx_codeobj__333); - Py_VISIT(traverse_module_state->__pyx_codeobj__334); - Py_VISIT(traverse_module_state->__pyx_codeobj__336); - Py_VISIT(traverse_module_state->__pyx_codeobj__337); - Py_VISIT(traverse_module_state->__pyx_codeobj__338); - Py_VISIT(traverse_module_state->__pyx_codeobj__339); - Py_VISIT(traverse_module_state->__pyx_codeobj__340); - Py_VISIT(traverse_module_state->__pyx_codeobj__341); - Py_VISIT(traverse_module_state->__pyx_codeobj__342); - Py_VISIT(traverse_module_state->__pyx_codeobj__344); - Py_VISIT(traverse_module_state->__pyx_codeobj__345); - Py_VISIT(traverse_module_state->__pyx_codeobj__346); - Py_VISIT(traverse_module_state->__pyx_codeobj__347); - Py_VISIT(traverse_module_state->__pyx_codeobj__348); - Py_VISIT(traverse_module_state->__pyx_codeobj__349); - Py_VISIT(traverse_module_state->__pyx_codeobj__350); - Py_VISIT(traverse_module_state->__pyx_codeobj__351); - Py_VISIT(traverse_module_state->__pyx_codeobj__352); - Py_VISIT(traverse_module_state->__pyx_codeobj__353); - Py_VISIT(traverse_module_state->__pyx_codeobj__354); - Py_VISIT(traverse_module_state->__pyx_codeobj__355); - Py_VISIT(traverse_module_state->__pyx_codeobj__356); - Py_VISIT(traverse_module_state->__pyx_codeobj__357); - Py_VISIT(traverse_module_state->__pyx_codeobj__358); - Py_VISIT(traverse_module_state->__pyx_codeobj__359); - Py_VISIT(traverse_module_state->__pyx_codeobj__360); - Py_VISIT(traverse_module_state->__pyx_codeobj__361); - Py_VISIT(traverse_module_state->__pyx_codeobj__362); - Py_VISIT(traverse_module_state->__pyx_codeobj__363); - Py_VISIT(traverse_module_state->__pyx_codeobj__364); - Py_VISIT(traverse_module_state->__pyx_codeobj__365); - Py_VISIT(traverse_module_state->__pyx_codeobj__366); - Py_VISIT(traverse_module_state->__pyx_codeobj__367); - Py_VISIT(traverse_module_state->__pyx_codeobj__368); - Py_VISIT(traverse_module_state->__pyx_codeobj__369); - Py_VISIT(traverse_module_state->__pyx_codeobj__370); - Py_VISIT(traverse_module_state->__pyx_codeobj__371); - Py_VISIT(traverse_module_state->__pyx_codeobj__372); - Py_VISIT(traverse_module_state->__pyx_codeobj__373); - Py_VISIT(traverse_module_state->__pyx_codeobj__374); - Py_VISIT(traverse_module_state->__pyx_codeobj__375); - Py_VISIT(traverse_module_state->__pyx_codeobj__376); - Py_VISIT(traverse_module_state->__pyx_codeobj__377); - Py_VISIT(traverse_module_state->__pyx_codeobj__378); - Py_VISIT(traverse_module_state->__pyx_codeobj__379); - Py_VISIT(traverse_module_state->__pyx_codeobj__380); - Py_VISIT(traverse_module_state->__pyx_codeobj__381); - Py_VISIT(traverse_module_state->__pyx_codeobj__382); - Py_VISIT(traverse_module_state->__pyx_codeobj__383); - Py_VISIT(traverse_module_state->__pyx_codeobj__384); - Py_VISIT(traverse_module_state->__pyx_codeobj__385); - Py_VISIT(traverse_module_state->__pyx_codeobj__386); - Py_VISIT(traverse_module_state->__pyx_codeobj__387); - Py_VISIT(traverse_module_state->__pyx_codeobj__388); - Py_VISIT(traverse_module_state->__pyx_codeobj__389); - Py_VISIT(traverse_module_state->__pyx_codeobj__390); - Py_VISIT(traverse_module_state->__pyx_codeobj__391); - Py_VISIT(traverse_module_state->__pyx_codeobj__392); - Py_VISIT(traverse_module_state->__pyx_codeobj__393); - Py_VISIT(traverse_module_state->__pyx_codeobj__394); - Py_VISIT(traverse_module_state->__pyx_codeobj__395); - Py_VISIT(traverse_module_state->__pyx_codeobj__396); - Py_VISIT(traverse_module_state->__pyx_codeobj__397); - Py_VISIT(traverse_module_state->__pyx_codeobj__398); - Py_VISIT(traverse_module_state->__pyx_codeobj__400); - Py_VISIT(traverse_module_state->__pyx_codeobj__401); - Py_VISIT(traverse_module_state->__pyx_codeobj__402); - Py_VISIT(traverse_module_state->__pyx_codeobj__403); - Py_VISIT(traverse_module_state->__pyx_codeobj__404); - Py_VISIT(traverse_module_state->__pyx_codeobj__405); - Py_VISIT(traverse_module_state->__pyx_codeobj__406); - Py_VISIT(traverse_module_state->__pyx_codeobj__407); - Py_VISIT(traverse_module_state->__pyx_codeobj__408); - Py_VISIT(traverse_module_state->__pyx_codeobj__409); - Py_VISIT(traverse_module_state->__pyx_codeobj__410); - Py_VISIT(traverse_module_state->__pyx_codeobj__411); - Py_VISIT(traverse_module_state->__pyx_codeobj__413); - Py_VISIT(traverse_module_state->__pyx_codeobj__415); - Py_VISIT(traverse_module_state->__pyx_codeobj__416); - Py_VISIT(traverse_module_state->__pyx_codeobj__418); - Py_VISIT(traverse_module_state->__pyx_codeobj__419); - Py_VISIT(traverse_module_state->__pyx_codeobj__420); - Py_VISIT(traverse_module_state->__pyx_codeobj__421); - Py_VISIT(traverse_module_state->__pyx_codeobj__422); - Py_VISIT(traverse_module_state->__pyx_codeobj__423); - Py_VISIT(traverse_module_state->__pyx_codeobj__424); - Py_VISIT(traverse_module_state->__pyx_codeobj__425); - Py_VISIT(traverse_module_state->__pyx_codeobj__427); - Py_VISIT(traverse_module_state->__pyx_codeobj__429); - Py_VISIT(traverse_module_state->__pyx_codeobj__431); - Py_VISIT(traverse_module_state->__pyx_codeobj__433); - Py_VISIT(traverse_module_state->__pyx_codeobj__435); - Py_VISIT(traverse_module_state->__pyx_codeobj__437); - Py_VISIT(traverse_module_state->__pyx_codeobj__438); - Py_VISIT(traverse_module_state->__pyx_codeobj__440); - Py_VISIT(traverse_module_state->__pyx_codeobj__442); - Py_VISIT(traverse_module_state->__pyx_codeobj__444); - Py_VISIT(traverse_module_state->__pyx_codeobj__445); - Py_VISIT(traverse_module_state->__pyx_codeobj__446); - Py_VISIT(traverse_module_state->__pyx_codeobj__447); - Py_VISIT(traverse_module_state->__pyx_codeobj__448); - Py_VISIT(traverse_module_state->__pyx_codeobj__450); - Py_VISIT(traverse_module_state->__pyx_codeobj__452); - Py_VISIT(traverse_module_state->__pyx_codeobj__453); - Py_VISIT(traverse_module_state->__pyx_codeobj__454); - Py_VISIT(traverse_module_state->__pyx_codeobj__455); - Py_VISIT(traverse_module_state->__pyx_codeobj__456); - Py_VISIT(traverse_module_state->__pyx_codeobj__457); - Py_VISIT(traverse_module_state->__pyx_codeobj__459); - Py_VISIT(traverse_module_state->__pyx_codeobj__460); - Py_VISIT(traverse_module_state->__pyx_codeobj__461); - Py_VISIT(traverse_module_state->__pyx_codeobj__462); - Py_VISIT(traverse_module_state->__pyx_codeobj__463); - Py_VISIT(traverse_module_state->__pyx_codeobj__464); - Py_VISIT(traverse_module_state->__pyx_codeobj__465); - Py_VISIT(traverse_module_state->__pyx_codeobj__466); - Py_VISIT(traverse_module_state->__pyx_codeobj__467); - Py_VISIT(traverse_module_state->__pyx_codeobj__469); - Py_VISIT(traverse_module_state->__pyx_codeobj__471); - Py_VISIT(traverse_module_state->__pyx_codeobj__472); - Py_VISIT(traverse_module_state->__pyx_codeobj__473); - Py_VISIT(traverse_module_state->__pyx_codeobj__474); - Py_VISIT(traverse_module_state->__pyx_codeobj__475); - Py_VISIT(traverse_module_state->__pyx_codeobj__477); - Py_VISIT(traverse_module_state->__pyx_codeobj__479); - Py_VISIT(traverse_module_state->__pyx_codeobj__481); - Py_VISIT(traverse_module_state->__pyx_codeobj__483); - Py_VISIT(traverse_module_state->__pyx_codeobj__484); - Py_VISIT(traverse_module_state->__pyx_codeobj__485); - Py_VISIT(traverse_module_state->__pyx_codeobj__487); - Py_VISIT(traverse_module_state->__pyx_codeobj__488); - Py_VISIT(traverse_module_state->__pyx_codeobj__489); - Py_VISIT(traverse_module_state->__pyx_codeobj__490); - Py_VISIT(traverse_module_state->__pyx_codeobj__492); - Py_VISIT(traverse_module_state->__pyx_codeobj__493); - Py_VISIT(traverse_module_state->__pyx_codeobj__494); - Py_VISIT(traverse_module_state->__pyx_codeobj__495); - Py_VISIT(traverse_module_state->__pyx_codeobj__496); - Py_VISIT(traverse_module_state->__pyx_codeobj__498); - Py_VISIT(traverse_module_state->__pyx_codeobj__499); - Py_VISIT(traverse_module_state->__pyx_codeobj__500); - Py_VISIT(traverse_module_state->__pyx_codeobj__501); - Py_VISIT(traverse_module_state->__pyx_codeobj__502); return 0; } #endif @@ -9040,8 +7861,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_kp_s__11 __pyx_mstate_global->__pyx_kp_s__11 #define __pyx_kp_s__12 __pyx_mstate_global->__pyx_kp_s__12 #define __pyx_n_s__240 __pyx_mstate_global->__pyx_n_s__240 +#define __pyx_n_s__307 __pyx_mstate_global->__pyx_n_s__307 #define __pyx_kp_u__43 __pyx_mstate_global->__pyx_kp_u__43 -#define __pyx_n_s__503 __pyx_mstate_global->__pyx_n_s__503 #define __pyx_kp_s__6 __pyx_mstate_global->__pyx_kp_s__6 #define __pyx_kp_s__7 __pyx_mstate_global->__pyx_kp_s__7 #define __pyx_kp_s__9 __pyx_mstate_global->__pyx_kp_s__9 @@ -9071,7 +7892,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback #define __pyx_n_s_clone __pyx_mstate_global->__pyx_n_s_clone #define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close -#define __pyx_n_s_close_data __pyx_mstate_global->__pyx_n_s_close_data #define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections #define __pyx_n_s_column_stack __pyx_mstate_global->__pyx_n_s_column_stack #define __pyx_n_s_columns __pyx_mstate_global->__pyx_n_s_columns @@ -9116,7 +7936,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_groups __pyx_mstate_global->__pyx_n_s_groups #define __pyx_n_s_help __pyx_mstate_global->__pyx_n_s_help #define __pyx_n_s_high __pyx_mstate_global->__pyx_n_s_high -#define __pyx_n_s_high_data __pyx_mstate_global->__pyx_n_s_high_data #define __pyx_n_s_holder __pyx_mstate_global->__pyx_n_s_holder #define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i #define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id @@ -9155,7 +7974,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_lookback __pyx_mstate_global->__pyx_n_s_lookback #define __pyx_n_s_lookup __pyx_mstate_global->__pyx_n_s_lookup #define __pyx_n_s_low __pyx_mstate_global->__pyx_n_s_low -#define __pyx_n_s_low_data __pyx_mstate_global->__pyx_n_s_low_data #define __pyx_n_s_lower __pyx_mstate_global->__pyx_n_s_lower #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main #define __pyx_n_s_math __pyx_mstate_global->__pyx_n_s_math @@ -9185,13 +8003,12 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_num_opt_inputs __pyx_mstate_global->__pyx_n_s_num_opt_inputs #define __pyx_n_s_num_outputs __pyx_mstate_global->__pyx_n_s_num_outputs #define __pyx_n_s_numpy __pyx_mstate_global->__pyx_n_s_numpy -#define __pyx_kp_s_numpy_core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_s_numpy_core_multiarray_failed_to -#define __pyx_kp_s_numpy_core_umath_failed_to_impor __pyx_mstate_global->__pyx_kp_s_numpy_core_umath_failed_to_impor +#define __pyx_kp_s_numpy__core_multiarray_failed_to __pyx_mstate_global->__pyx_kp_s_numpy__core_multiarray_failed_to +#define __pyx_kp_s_numpy__core_umath_failed_to_impo __pyx_mstate_global->__pyx_kp_s_numpy__core_umath_failed_to_impo #define __pyx_n_s_object __pyx_mstate_global->__pyx_n_s_object #define __pyx_n_s_offsetonreverse __pyx_mstate_global->__pyx_n_s_offsetonreverse #define __pyx_n_s_open __pyx_mstate_global->__pyx_n_s_open #define __pyx_n_s_openInterest __pyx_mstate_global->__pyx_n_s_openInterest -#define __pyx_n_s_open_data __pyx_mstate_global->__pyx_n_s_open_data #define __pyx_n_s_optIn __pyx_mstate_global->__pyx_n_s_optIn #define __pyx_n_s_opt_input __pyx_mstate_global->__pyx_n_s_opt_input #define __pyx_n_s_opt_input_values __pyx_mstate_global->__pyx_n_s_opt_input_values @@ -9241,7 +8058,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_penetration __pyx_mstate_global->__pyx_n_s_penetration #define __pyx_n_s_period __pyx_mstate_global->__pyx_n_s_period #define __pyx_n_s_periods __pyx_mstate_global->__pyx_n_s_periods -#define __pyx_n_s_periods_data __pyx_mstate_global->__pyx_n_s_periods_data #define __pyx_n_s_polars __pyx_mstate_global->__pyx_n_s_polars #define __pyx_n_s_pop __pyx_mstate_global->__pyx_n_s_pop #define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare @@ -9257,10 +8073,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_rangetype __pyx_mstate_global->__pyx_n_s_rangetype #define __pyx_n_s_real __pyx_mstate_global->__pyx_n_s_real #define __pyx_n_s_real0 __pyx_mstate_global->__pyx_n_s_real0 -#define __pyx_n_s_real0_data __pyx_mstate_global->__pyx_n_s_real0_data #define __pyx_n_s_real1 __pyx_mstate_global->__pyx_n_s_real1 -#define __pyx_n_s_real1_data __pyx_mstate_global->__pyx_n_s_real1_data -#define __pyx_n_s_real_data __pyx_mstate_global->__pyx_n_s_real_data #define __pyx_n_s_replace __pyx_mstate_global->__pyx_n_s_replace #define __pyx_n_s_repr __pyx_mstate_global->__pyx_n_s_repr #define __pyx_n_s_results __pyx_mstate_global->__pyx_n_s_results @@ -9298,164 +8111,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_startvalue __pyx_mstate_global->__pyx_n_s_startvalue #define __pyx_n_s_str __pyx_mstate_global->__pyx_n_s_str #define __pyx_n_s_str2bytes __pyx_mstate_global->__pyx_n_s_str2bytes -#define __pyx_n_s_stream_ACOS __pyx_mstate_global->__pyx_n_s_stream_ACOS -#define __pyx_n_s_stream_AD __pyx_mstate_global->__pyx_n_s_stream_AD -#define __pyx_n_s_stream_ADD __pyx_mstate_global->__pyx_n_s_stream_ADD -#define __pyx_n_s_stream_ADOSC __pyx_mstate_global->__pyx_n_s_stream_ADOSC -#define __pyx_n_s_stream_ADX __pyx_mstate_global->__pyx_n_s_stream_ADX -#define __pyx_n_s_stream_ADXR __pyx_mstate_global->__pyx_n_s_stream_ADXR -#define __pyx_n_s_stream_APO __pyx_mstate_global->__pyx_n_s_stream_APO -#define __pyx_n_s_stream_AROON __pyx_mstate_global->__pyx_n_s_stream_AROON -#define __pyx_n_s_stream_AROONOSC __pyx_mstate_global->__pyx_n_s_stream_AROONOSC -#define __pyx_n_s_stream_ASIN __pyx_mstate_global->__pyx_n_s_stream_ASIN -#define __pyx_n_s_stream_ATAN __pyx_mstate_global->__pyx_n_s_stream_ATAN -#define __pyx_n_s_stream_ATR __pyx_mstate_global->__pyx_n_s_stream_ATR -#define __pyx_n_s_stream_AVGPRICE __pyx_mstate_global->__pyx_n_s_stream_AVGPRICE -#define __pyx_n_s_stream_BBANDS __pyx_mstate_global->__pyx_n_s_stream_BBANDS -#define __pyx_n_s_stream_BETA __pyx_mstate_global->__pyx_n_s_stream_BETA -#define __pyx_n_s_stream_BOP __pyx_mstate_global->__pyx_n_s_stream_BOP -#define __pyx_n_s_stream_CCI __pyx_mstate_global->__pyx_n_s_stream_CCI -#define __pyx_n_s_stream_CDL2CROWS __pyx_mstate_global->__pyx_n_s_stream_CDL2CROWS -#define __pyx_n_s_stream_CDL3BLACKCROWS __pyx_mstate_global->__pyx_n_s_stream_CDL3BLACKCROWS -#define __pyx_n_s_stream_CDL3INSIDE __pyx_mstate_global->__pyx_n_s_stream_CDL3INSIDE -#define __pyx_n_s_stream_CDL3LINESTRIKE __pyx_mstate_global->__pyx_n_s_stream_CDL3LINESTRIKE -#define __pyx_n_s_stream_CDL3OUTSIDE __pyx_mstate_global->__pyx_n_s_stream_CDL3OUTSIDE -#define __pyx_n_s_stream_CDL3STARSINSOUTH __pyx_mstate_global->__pyx_n_s_stream_CDL3STARSINSOUTH -#define __pyx_n_s_stream_CDL3WHITESOLDIERS __pyx_mstate_global->__pyx_n_s_stream_CDL3WHITESOLDIERS -#define __pyx_n_s_stream_CDLABANDONEDBABY __pyx_mstate_global->__pyx_n_s_stream_CDLABANDONEDBABY -#define __pyx_n_s_stream_CDLADVANCEBLOCK __pyx_mstate_global->__pyx_n_s_stream_CDLADVANCEBLOCK -#define __pyx_n_s_stream_CDLBELTHOLD __pyx_mstate_global->__pyx_n_s_stream_CDLBELTHOLD -#define __pyx_n_s_stream_CDLBREAKAWAY __pyx_mstate_global->__pyx_n_s_stream_CDLBREAKAWAY -#define __pyx_n_s_stream_CDLCLOSINGMARUBOZU __pyx_mstate_global->__pyx_n_s_stream_CDLCLOSINGMARUBOZU -#define __pyx_n_s_stream_CDLCONCEALBABYSWALL __pyx_mstate_global->__pyx_n_s_stream_CDLCONCEALBABYSWALL -#define __pyx_n_s_stream_CDLCOUNTERATTACK __pyx_mstate_global->__pyx_n_s_stream_CDLCOUNTERATTACK -#define __pyx_n_s_stream_CDLDARKCLOUDCOVER __pyx_mstate_global->__pyx_n_s_stream_CDLDARKCLOUDCOVER -#define __pyx_n_s_stream_CDLDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLDOJI -#define __pyx_n_s_stream_CDLDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLDOJISTAR -#define __pyx_n_s_stream_CDLDRAGONFLYDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLDRAGONFLYDOJI -#define __pyx_n_s_stream_CDLENGULFING __pyx_mstate_global->__pyx_n_s_stream_CDLENGULFING -#define __pyx_n_s_stream_CDLEVENINGDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLEVENINGDOJISTAR -#define __pyx_n_s_stream_CDLEVENINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLEVENINGSTAR -#define __pyx_n_s_stream_CDLGAPSIDESIDEWHITE __pyx_mstate_global->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE -#define __pyx_n_s_stream_CDLGRAVESTONEDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLGRAVESTONEDOJI -#define __pyx_n_s_stream_CDLHAMMER __pyx_mstate_global->__pyx_n_s_stream_CDLHAMMER -#define __pyx_n_s_stream_CDLHANGINGMAN __pyx_mstate_global->__pyx_n_s_stream_CDLHANGINGMAN -#define __pyx_n_s_stream_CDLHARAMI __pyx_mstate_global->__pyx_n_s_stream_CDLHARAMI -#define __pyx_n_s_stream_CDLHARAMICROSS __pyx_mstate_global->__pyx_n_s_stream_CDLHARAMICROSS -#define __pyx_n_s_stream_CDLHIGHWAVE __pyx_mstate_global->__pyx_n_s_stream_CDLHIGHWAVE -#define __pyx_n_s_stream_CDLHIKKAKE __pyx_mstate_global->__pyx_n_s_stream_CDLHIKKAKE -#define __pyx_n_s_stream_CDLHIKKAKEMOD __pyx_mstate_global->__pyx_n_s_stream_CDLHIKKAKEMOD -#define __pyx_n_s_stream_CDLHOMINGPIGEON __pyx_mstate_global->__pyx_n_s_stream_CDLHOMINGPIGEON -#define __pyx_n_s_stream_CDLIDENTICAL3CROWS __pyx_mstate_global->__pyx_n_s_stream_CDLIDENTICAL3CROWS -#define __pyx_n_s_stream_CDLINNECK __pyx_mstate_global->__pyx_n_s_stream_CDLINNECK -#define __pyx_n_s_stream_CDLINVERTEDHAMMER __pyx_mstate_global->__pyx_n_s_stream_CDLINVERTEDHAMMER -#define __pyx_n_s_stream_CDLKICKING __pyx_mstate_global->__pyx_n_s_stream_CDLKICKING -#define __pyx_n_s_stream_CDLKICKINGBYLENGTH __pyx_mstate_global->__pyx_n_s_stream_CDLKICKINGBYLENGTH -#define __pyx_n_s_stream_CDLLADDERBOTTOM __pyx_mstate_global->__pyx_n_s_stream_CDLLADDERBOTTOM -#define __pyx_n_s_stream_CDLLONGLEGGEDDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLLONGLEGGEDDOJI -#define __pyx_n_s_stream_CDLLONGLINE __pyx_mstate_global->__pyx_n_s_stream_CDLLONGLINE -#define __pyx_n_s_stream_CDLMARUBOZU __pyx_mstate_global->__pyx_n_s_stream_CDLMARUBOZU -#define __pyx_n_s_stream_CDLMATCHINGLOW __pyx_mstate_global->__pyx_n_s_stream_CDLMATCHINGLOW -#define __pyx_n_s_stream_CDLMATHOLD __pyx_mstate_global->__pyx_n_s_stream_CDLMATHOLD -#define __pyx_n_s_stream_CDLMORNINGDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLMORNINGDOJISTAR -#define __pyx_n_s_stream_CDLMORNINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLMORNINGSTAR -#define __pyx_n_s_stream_CDLONNECK __pyx_mstate_global->__pyx_n_s_stream_CDLONNECK -#define __pyx_n_s_stream_CDLPIERCING __pyx_mstate_global->__pyx_n_s_stream_CDLPIERCING -#define __pyx_n_s_stream_CDLRICKSHAWMAN __pyx_mstate_global->__pyx_n_s_stream_CDLRICKSHAWMAN -#define __pyx_n_s_stream_CDLRISEFALL3METHODS __pyx_mstate_global->__pyx_n_s_stream_CDLRISEFALL3METHODS -#define __pyx_n_s_stream_CDLSEPARATINGLINES __pyx_mstate_global->__pyx_n_s_stream_CDLSEPARATINGLINES -#define __pyx_n_s_stream_CDLSHOOTINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLSHOOTINGSTAR -#define __pyx_n_s_stream_CDLSHORTLINE __pyx_mstate_global->__pyx_n_s_stream_CDLSHORTLINE -#define __pyx_n_s_stream_CDLSPINNINGTOP __pyx_mstate_global->__pyx_n_s_stream_CDLSPINNINGTOP -#define __pyx_n_s_stream_CDLSTALLEDPATTERN __pyx_mstate_global->__pyx_n_s_stream_CDLSTALLEDPATTERN -#define __pyx_n_s_stream_CDLSTICKSANDWICH __pyx_mstate_global->__pyx_n_s_stream_CDLSTICKSANDWICH -#define __pyx_n_s_stream_CDLTAKURI __pyx_mstate_global->__pyx_n_s_stream_CDLTAKURI -#define __pyx_n_s_stream_CDLTASUKIGAP __pyx_mstate_global->__pyx_n_s_stream_CDLTASUKIGAP -#define __pyx_n_s_stream_CDLTHRUSTING __pyx_mstate_global->__pyx_n_s_stream_CDLTHRUSTING -#define __pyx_n_s_stream_CDLTRISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLTRISTAR -#define __pyx_n_s_stream_CDLUNIQUE3RIVER __pyx_mstate_global->__pyx_n_s_stream_CDLUNIQUE3RIVER -#define __pyx_n_s_stream_CDLUPSIDEGAP2CROWS __pyx_mstate_global->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS -#define __pyx_n_s_stream_CDLXSIDEGAP3METHODS __pyx_mstate_global->__pyx_n_s_stream_CDLXSIDEGAP3METHODS -#define __pyx_n_s_stream_CEIL __pyx_mstate_global->__pyx_n_s_stream_CEIL -#define __pyx_n_s_stream_CMO __pyx_mstate_global->__pyx_n_s_stream_CMO -#define __pyx_n_s_stream_CORREL __pyx_mstate_global->__pyx_n_s_stream_CORREL -#define __pyx_n_s_stream_COS __pyx_mstate_global->__pyx_n_s_stream_COS -#define __pyx_n_s_stream_COSH __pyx_mstate_global->__pyx_n_s_stream_COSH -#define __pyx_n_s_stream_DEMA __pyx_mstate_global->__pyx_n_s_stream_DEMA -#define __pyx_n_s_stream_DIV __pyx_mstate_global->__pyx_n_s_stream_DIV -#define __pyx_n_s_stream_DX __pyx_mstate_global->__pyx_n_s_stream_DX -#define __pyx_n_s_stream_EMA __pyx_mstate_global->__pyx_n_s_stream_EMA -#define __pyx_n_s_stream_EXP __pyx_mstate_global->__pyx_n_s_stream_EXP -#define __pyx_n_s_stream_FLOOR __pyx_mstate_global->__pyx_n_s_stream_FLOOR -#define __pyx_n_s_stream_HT_DCPERIOD __pyx_mstate_global->__pyx_n_s_stream_HT_DCPERIOD -#define __pyx_n_s_stream_HT_DCPHASE __pyx_mstate_global->__pyx_n_s_stream_HT_DCPHASE -#define __pyx_n_s_stream_HT_PHASOR __pyx_mstate_global->__pyx_n_s_stream_HT_PHASOR -#define __pyx_n_s_stream_HT_SINE __pyx_mstate_global->__pyx_n_s_stream_HT_SINE -#define __pyx_n_s_stream_HT_TRENDLINE __pyx_mstate_global->__pyx_n_s_stream_HT_TRENDLINE -#define __pyx_n_s_stream_HT_TRENDMODE __pyx_mstate_global->__pyx_n_s_stream_HT_TRENDMODE -#define __pyx_n_s_stream_KAMA __pyx_mstate_global->__pyx_n_s_stream_KAMA -#define __pyx_n_s_stream_LINEARREG __pyx_mstate_global->__pyx_n_s_stream_LINEARREG -#define __pyx_n_s_stream_LINEARREG_ANGLE __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_ANGLE -#define __pyx_n_s_stream_LINEARREG_INTERCEPT __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_INTERCEPT -#define __pyx_n_s_stream_LINEARREG_SLOPE __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_SLOPE -#define __pyx_n_s_stream_LN __pyx_mstate_global->__pyx_n_s_stream_LN -#define __pyx_n_s_stream_LOG10 __pyx_mstate_global->__pyx_n_s_stream_LOG10 -#define __pyx_n_s_stream_MA __pyx_mstate_global->__pyx_n_s_stream_MA -#define __pyx_n_s_stream_MACD __pyx_mstate_global->__pyx_n_s_stream_MACD -#define __pyx_n_s_stream_MACDEXT __pyx_mstate_global->__pyx_n_s_stream_MACDEXT -#define __pyx_n_s_stream_MACDFIX __pyx_mstate_global->__pyx_n_s_stream_MACDFIX -#define __pyx_n_s_stream_MAMA __pyx_mstate_global->__pyx_n_s_stream_MAMA -#define __pyx_n_s_stream_MAVP __pyx_mstate_global->__pyx_n_s_stream_MAVP -#define __pyx_n_s_stream_MAX __pyx_mstate_global->__pyx_n_s_stream_MAX -#define __pyx_n_s_stream_MAXINDEX __pyx_mstate_global->__pyx_n_s_stream_MAXINDEX -#define __pyx_n_s_stream_MEDPRICE __pyx_mstate_global->__pyx_n_s_stream_MEDPRICE -#define __pyx_n_s_stream_MFI __pyx_mstate_global->__pyx_n_s_stream_MFI -#define __pyx_n_s_stream_MIDPOINT __pyx_mstate_global->__pyx_n_s_stream_MIDPOINT -#define __pyx_n_s_stream_MIDPRICE __pyx_mstate_global->__pyx_n_s_stream_MIDPRICE -#define __pyx_n_s_stream_MIN __pyx_mstate_global->__pyx_n_s_stream_MIN -#define __pyx_n_s_stream_MININDEX __pyx_mstate_global->__pyx_n_s_stream_MININDEX -#define __pyx_n_s_stream_MINMAX __pyx_mstate_global->__pyx_n_s_stream_MINMAX -#define __pyx_n_s_stream_MINMAXINDEX __pyx_mstate_global->__pyx_n_s_stream_MINMAXINDEX -#define __pyx_n_s_stream_MINUS_DI __pyx_mstate_global->__pyx_n_s_stream_MINUS_DI -#define __pyx_n_s_stream_MINUS_DM __pyx_mstate_global->__pyx_n_s_stream_MINUS_DM -#define __pyx_n_s_stream_MOM __pyx_mstate_global->__pyx_n_s_stream_MOM -#define __pyx_n_s_stream_MULT __pyx_mstate_global->__pyx_n_s_stream_MULT -#define __pyx_n_s_stream_NATR __pyx_mstate_global->__pyx_n_s_stream_NATR -#define __pyx_n_s_stream_OBV __pyx_mstate_global->__pyx_n_s_stream_OBV -#define __pyx_n_s_stream_PLUS_DI __pyx_mstate_global->__pyx_n_s_stream_PLUS_DI -#define __pyx_n_s_stream_PLUS_DM __pyx_mstate_global->__pyx_n_s_stream_PLUS_DM -#define __pyx_n_s_stream_PPO __pyx_mstate_global->__pyx_n_s_stream_PPO -#define __pyx_n_s_stream_ROC __pyx_mstate_global->__pyx_n_s_stream_ROC -#define __pyx_n_s_stream_ROCP __pyx_mstate_global->__pyx_n_s_stream_ROCP -#define __pyx_n_s_stream_ROCR __pyx_mstate_global->__pyx_n_s_stream_ROCR -#define __pyx_n_s_stream_ROCR100 __pyx_mstate_global->__pyx_n_s_stream_ROCR100 -#define __pyx_n_s_stream_RSI __pyx_mstate_global->__pyx_n_s_stream_RSI -#define __pyx_n_s_stream_SAR __pyx_mstate_global->__pyx_n_s_stream_SAR -#define __pyx_n_s_stream_SAREXT __pyx_mstate_global->__pyx_n_s_stream_SAREXT -#define __pyx_n_s_stream_SIN __pyx_mstate_global->__pyx_n_s_stream_SIN -#define __pyx_n_s_stream_SINH __pyx_mstate_global->__pyx_n_s_stream_SINH -#define __pyx_n_s_stream_SMA __pyx_mstate_global->__pyx_n_s_stream_SMA -#define __pyx_n_s_stream_SQRT __pyx_mstate_global->__pyx_n_s_stream_SQRT -#define __pyx_n_s_stream_STDDEV __pyx_mstate_global->__pyx_n_s_stream_STDDEV -#define __pyx_n_s_stream_STOCH __pyx_mstate_global->__pyx_n_s_stream_STOCH -#define __pyx_n_s_stream_STOCHF __pyx_mstate_global->__pyx_n_s_stream_STOCHF -#define __pyx_n_s_stream_STOCHRSI __pyx_mstate_global->__pyx_n_s_stream_STOCHRSI -#define __pyx_n_s_stream_SUB __pyx_mstate_global->__pyx_n_s_stream_SUB -#define __pyx_n_s_stream_SUM __pyx_mstate_global->__pyx_n_s_stream_SUM -#define __pyx_n_s_stream_T3 __pyx_mstate_global->__pyx_n_s_stream_T3 -#define __pyx_n_s_stream_TAN __pyx_mstate_global->__pyx_n_s_stream_TAN -#define __pyx_n_s_stream_TANH __pyx_mstate_global->__pyx_n_s_stream_TANH -#define __pyx_n_s_stream_TEMA __pyx_mstate_global->__pyx_n_s_stream_TEMA -#define __pyx_n_s_stream_TRANGE __pyx_mstate_global->__pyx_n_s_stream_TRANGE -#define __pyx_n_s_stream_TRIMA __pyx_mstate_global->__pyx_n_s_stream_TRIMA -#define __pyx_n_s_stream_TRIX __pyx_mstate_global->__pyx_n_s_stream_TRIX -#define __pyx_n_s_stream_TSF __pyx_mstate_global->__pyx_n_s_stream_TSF -#define __pyx_n_s_stream_TYPPRICE __pyx_mstate_global->__pyx_n_s_stream_TYPPRICE -#define __pyx_n_s_stream_ULTOSC __pyx_mstate_global->__pyx_n_s_stream_ULTOSC -#define __pyx_n_s_stream_VAR __pyx_mstate_global->__pyx_n_s_stream_VAR -#define __pyx_n_s_stream_WCLPRICE __pyx_mstate_global->__pyx_n_s_stream_WCLPRICE -#define __pyx_n_s_stream_WILLR __pyx_mstate_global->__pyx_n_s_stream_WILLR -#define __pyx_n_s_stream_WMA __pyx_mstate_global->__pyx_n_s_stream_WMA #define __pyx_kp_s_stream__s __pyx_mstate_global->__pyx_kp_s_stream__s #define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys @@ -9480,7 +8135,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_kp_s_talib__abstract_pxi __pyx_mstate_global->__pyx_kp_s_talib__abstract_pxi #define __pyx_kp_s_talib__common_pxi __pyx_mstate_global->__pyx_kp_s_talib__common_pxi #define __pyx_kp_s_talib__func_pxi __pyx_mstate_global->__pyx_kp_s_talib__func_pxi -#define __pyx_kp_s_talib__stream_pxi __pyx_mstate_global->__pyx_kp_s_talib__stream_pxi #define __pyx_n_s_talib__ta_lib __pyx_mstate_global->__pyx_n_s_talib__ta_lib #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test #define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading @@ -9502,7 +8156,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_version __pyx_mstate_global->__pyx_n_s_version #define __pyx_n_s_vfactor __pyx_mstate_global->__pyx_n_s_vfactor #define __pyx_n_s_volume __pyx_mstate_global->__pyx_n_s_volume -#define __pyx_n_s_volume_data __pyx_mstate_global->__pyx_n_s_volume_data #define __pyx_n_s_xrange __pyx_mstate_global->__pyx_n_s_xrange #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1 @@ -9619,44 +8272,6 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_tuple__300 __pyx_mstate_global->__pyx_tuple__300 #define __pyx_tuple__302 __pyx_mstate_global->__pyx_tuple__302 #define __pyx_tuple__305 __pyx_mstate_global->__pyx_tuple__305 -#define __pyx_tuple__307 __pyx_mstate_global->__pyx_tuple__307 -#define __pyx_tuple__309 __pyx_mstate_global->__pyx_tuple__309 -#define __pyx_tuple__311 __pyx_mstate_global->__pyx_tuple__311 -#define __pyx_tuple__313 __pyx_mstate_global->__pyx_tuple__313 -#define __pyx_tuple__315 __pyx_mstate_global->__pyx_tuple__315 -#define __pyx_tuple__318 __pyx_mstate_global->__pyx_tuple__318 -#define __pyx_tuple__320 __pyx_mstate_global->__pyx_tuple__320 -#define __pyx_tuple__322 __pyx_mstate_global->__pyx_tuple__322 -#define __pyx_tuple__327 __pyx_mstate_global->__pyx_tuple__327 -#define __pyx_tuple__329 __pyx_mstate_global->__pyx_tuple__329 -#define __pyx_tuple__331 __pyx_mstate_global->__pyx_tuple__331 -#define __pyx_tuple__335 __pyx_mstate_global->__pyx_tuple__335 -#define __pyx_tuple__343 __pyx_mstate_global->__pyx_tuple__343 -#define __pyx_tuple__399 __pyx_mstate_global->__pyx_tuple__399 -#define __pyx_tuple__412 __pyx_mstate_global->__pyx_tuple__412 -#define __pyx_tuple__414 __pyx_mstate_global->__pyx_tuple__414 -#define __pyx_tuple__417 __pyx_mstate_global->__pyx_tuple__417 -#define __pyx_tuple__426 __pyx_mstate_global->__pyx_tuple__426 -#define __pyx_tuple__428 __pyx_mstate_global->__pyx_tuple__428 -#define __pyx_tuple__430 __pyx_mstate_global->__pyx_tuple__430 -#define __pyx_tuple__432 __pyx_mstate_global->__pyx_tuple__432 -#define __pyx_tuple__434 __pyx_mstate_global->__pyx_tuple__434 -#define __pyx_tuple__436 __pyx_mstate_global->__pyx_tuple__436 -#define __pyx_tuple__439 __pyx_mstate_global->__pyx_tuple__439 -#define __pyx_tuple__441 __pyx_mstate_global->__pyx_tuple__441 -#define __pyx_tuple__443 __pyx_mstate_global->__pyx_tuple__443 -#define __pyx_tuple__449 __pyx_mstate_global->__pyx_tuple__449 -#define __pyx_tuple__451 __pyx_mstate_global->__pyx_tuple__451 -#define __pyx_tuple__458 __pyx_mstate_global->__pyx_tuple__458 -#define __pyx_tuple__468 __pyx_mstate_global->__pyx_tuple__468 -#define __pyx_tuple__470 __pyx_mstate_global->__pyx_tuple__470 -#define __pyx_tuple__476 __pyx_mstate_global->__pyx_tuple__476 -#define __pyx_tuple__478 __pyx_mstate_global->__pyx_tuple__478 -#define __pyx_tuple__480 __pyx_mstate_global->__pyx_tuple__480 -#define __pyx_tuple__482 __pyx_mstate_global->__pyx_tuple__482 -#define __pyx_tuple__486 __pyx_mstate_global->__pyx_tuple__486 -#define __pyx_tuple__491 __pyx_mstate_global->__pyx_tuple__491 -#define __pyx_tuple__497 __pyx_mstate_global->__pyx_tuple__497 #define __pyx_codeobj__14 __pyx_mstate_global->__pyx_codeobj__14 #define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16 #define __pyx_codeobj__17 __pyx_mstate_global->__pyx_codeobj__17 @@ -9862,179 +8477,473 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_codeobj__303 __pyx_mstate_global->__pyx_codeobj__303 #define __pyx_codeobj__304 __pyx_mstate_global->__pyx_codeobj__304 #define __pyx_codeobj__306 __pyx_mstate_global->__pyx_codeobj__306 -#define __pyx_codeobj__308 __pyx_mstate_global->__pyx_codeobj__308 -#define __pyx_codeobj__310 __pyx_mstate_global->__pyx_codeobj__310 -#define __pyx_codeobj__312 __pyx_mstate_global->__pyx_codeobj__312 -#define __pyx_codeobj__314 __pyx_mstate_global->__pyx_codeobj__314 -#define __pyx_codeobj__316 __pyx_mstate_global->__pyx_codeobj__316 -#define __pyx_codeobj__317 __pyx_mstate_global->__pyx_codeobj__317 -#define __pyx_codeobj__319 __pyx_mstate_global->__pyx_codeobj__319 -#define __pyx_codeobj__321 __pyx_mstate_global->__pyx_codeobj__321 -#define __pyx_codeobj__323 __pyx_mstate_global->__pyx_codeobj__323 -#define __pyx_codeobj__324 __pyx_mstate_global->__pyx_codeobj__324 -#define __pyx_codeobj__325 __pyx_mstate_global->__pyx_codeobj__325 -#define __pyx_codeobj__326 __pyx_mstate_global->__pyx_codeobj__326 -#define __pyx_codeobj__328 __pyx_mstate_global->__pyx_codeobj__328 -#define __pyx_codeobj__330 __pyx_mstate_global->__pyx_codeobj__330 -#define __pyx_codeobj__332 __pyx_mstate_global->__pyx_codeobj__332 -#define __pyx_codeobj__333 __pyx_mstate_global->__pyx_codeobj__333 -#define __pyx_codeobj__334 __pyx_mstate_global->__pyx_codeobj__334 -#define __pyx_codeobj__336 __pyx_mstate_global->__pyx_codeobj__336 -#define __pyx_codeobj__337 __pyx_mstate_global->__pyx_codeobj__337 -#define __pyx_codeobj__338 __pyx_mstate_global->__pyx_codeobj__338 -#define __pyx_codeobj__339 __pyx_mstate_global->__pyx_codeobj__339 -#define __pyx_codeobj__340 __pyx_mstate_global->__pyx_codeobj__340 -#define __pyx_codeobj__341 __pyx_mstate_global->__pyx_codeobj__341 -#define __pyx_codeobj__342 __pyx_mstate_global->__pyx_codeobj__342 -#define __pyx_codeobj__344 __pyx_mstate_global->__pyx_codeobj__344 -#define __pyx_codeobj__345 __pyx_mstate_global->__pyx_codeobj__345 -#define __pyx_codeobj__346 __pyx_mstate_global->__pyx_codeobj__346 -#define __pyx_codeobj__347 __pyx_mstate_global->__pyx_codeobj__347 -#define __pyx_codeobj__348 __pyx_mstate_global->__pyx_codeobj__348 -#define __pyx_codeobj__349 __pyx_mstate_global->__pyx_codeobj__349 -#define __pyx_codeobj__350 __pyx_mstate_global->__pyx_codeobj__350 -#define __pyx_codeobj__351 __pyx_mstate_global->__pyx_codeobj__351 -#define __pyx_codeobj__352 __pyx_mstate_global->__pyx_codeobj__352 -#define __pyx_codeobj__353 __pyx_mstate_global->__pyx_codeobj__353 -#define __pyx_codeobj__354 __pyx_mstate_global->__pyx_codeobj__354 -#define __pyx_codeobj__355 __pyx_mstate_global->__pyx_codeobj__355 -#define __pyx_codeobj__356 __pyx_mstate_global->__pyx_codeobj__356 -#define __pyx_codeobj__357 __pyx_mstate_global->__pyx_codeobj__357 -#define __pyx_codeobj__358 __pyx_mstate_global->__pyx_codeobj__358 -#define __pyx_codeobj__359 __pyx_mstate_global->__pyx_codeobj__359 -#define __pyx_codeobj__360 __pyx_mstate_global->__pyx_codeobj__360 -#define __pyx_codeobj__361 __pyx_mstate_global->__pyx_codeobj__361 -#define __pyx_codeobj__362 __pyx_mstate_global->__pyx_codeobj__362 -#define __pyx_codeobj__363 __pyx_mstate_global->__pyx_codeobj__363 -#define __pyx_codeobj__364 __pyx_mstate_global->__pyx_codeobj__364 -#define __pyx_codeobj__365 __pyx_mstate_global->__pyx_codeobj__365 -#define __pyx_codeobj__366 __pyx_mstate_global->__pyx_codeobj__366 -#define __pyx_codeobj__367 __pyx_mstate_global->__pyx_codeobj__367 -#define __pyx_codeobj__368 __pyx_mstate_global->__pyx_codeobj__368 -#define __pyx_codeobj__369 __pyx_mstate_global->__pyx_codeobj__369 -#define __pyx_codeobj__370 __pyx_mstate_global->__pyx_codeobj__370 -#define __pyx_codeobj__371 __pyx_mstate_global->__pyx_codeobj__371 -#define __pyx_codeobj__372 __pyx_mstate_global->__pyx_codeobj__372 -#define __pyx_codeobj__373 __pyx_mstate_global->__pyx_codeobj__373 -#define __pyx_codeobj__374 __pyx_mstate_global->__pyx_codeobj__374 -#define __pyx_codeobj__375 __pyx_mstate_global->__pyx_codeobj__375 -#define __pyx_codeobj__376 __pyx_mstate_global->__pyx_codeobj__376 -#define __pyx_codeobj__377 __pyx_mstate_global->__pyx_codeobj__377 -#define __pyx_codeobj__378 __pyx_mstate_global->__pyx_codeobj__378 -#define __pyx_codeobj__379 __pyx_mstate_global->__pyx_codeobj__379 -#define __pyx_codeobj__380 __pyx_mstate_global->__pyx_codeobj__380 -#define __pyx_codeobj__381 __pyx_mstate_global->__pyx_codeobj__381 -#define __pyx_codeobj__382 __pyx_mstate_global->__pyx_codeobj__382 -#define __pyx_codeobj__383 __pyx_mstate_global->__pyx_codeobj__383 -#define __pyx_codeobj__384 __pyx_mstate_global->__pyx_codeobj__384 -#define __pyx_codeobj__385 __pyx_mstate_global->__pyx_codeobj__385 -#define __pyx_codeobj__386 __pyx_mstate_global->__pyx_codeobj__386 -#define __pyx_codeobj__387 __pyx_mstate_global->__pyx_codeobj__387 -#define __pyx_codeobj__388 __pyx_mstate_global->__pyx_codeobj__388 -#define __pyx_codeobj__389 __pyx_mstate_global->__pyx_codeobj__389 -#define __pyx_codeobj__390 __pyx_mstate_global->__pyx_codeobj__390 -#define __pyx_codeobj__391 __pyx_mstate_global->__pyx_codeobj__391 -#define __pyx_codeobj__392 __pyx_mstate_global->__pyx_codeobj__392 -#define __pyx_codeobj__393 __pyx_mstate_global->__pyx_codeobj__393 -#define __pyx_codeobj__394 __pyx_mstate_global->__pyx_codeobj__394 -#define __pyx_codeobj__395 __pyx_mstate_global->__pyx_codeobj__395 -#define __pyx_codeobj__396 __pyx_mstate_global->__pyx_codeobj__396 -#define __pyx_codeobj__397 __pyx_mstate_global->__pyx_codeobj__397 -#define __pyx_codeobj__398 __pyx_mstate_global->__pyx_codeobj__398 -#define __pyx_codeobj__400 __pyx_mstate_global->__pyx_codeobj__400 -#define __pyx_codeobj__401 __pyx_mstate_global->__pyx_codeobj__401 -#define __pyx_codeobj__402 __pyx_mstate_global->__pyx_codeobj__402 -#define __pyx_codeobj__403 __pyx_mstate_global->__pyx_codeobj__403 -#define __pyx_codeobj__404 __pyx_mstate_global->__pyx_codeobj__404 -#define __pyx_codeobj__405 __pyx_mstate_global->__pyx_codeobj__405 -#define __pyx_codeobj__406 __pyx_mstate_global->__pyx_codeobj__406 -#define __pyx_codeobj__407 __pyx_mstate_global->__pyx_codeobj__407 -#define __pyx_codeobj__408 __pyx_mstate_global->__pyx_codeobj__408 -#define __pyx_codeobj__409 __pyx_mstate_global->__pyx_codeobj__409 -#define __pyx_codeobj__410 __pyx_mstate_global->__pyx_codeobj__410 -#define __pyx_codeobj__411 __pyx_mstate_global->__pyx_codeobj__411 -#define __pyx_codeobj__413 __pyx_mstate_global->__pyx_codeobj__413 -#define __pyx_codeobj__415 __pyx_mstate_global->__pyx_codeobj__415 -#define __pyx_codeobj__416 __pyx_mstate_global->__pyx_codeobj__416 -#define __pyx_codeobj__418 __pyx_mstate_global->__pyx_codeobj__418 -#define __pyx_codeobj__419 __pyx_mstate_global->__pyx_codeobj__419 -#define __pyx_codeobj__420 __pyx_mstate_global->__pyx_codeobj__420 -#define __pyx_codeobj__421 __pyx_mstate_global->__pyx_codeobj__421 -#define __pyx_codeobj__422 __pyx_mstate_global->__pyx_codeobj__422 -#define __pyx_codeobj__423 __pyx_mstate_global->__pyx_codeobj__423 -#define __pyx_codeobj__424 __pyx_mstate_global->__pyx_codeobj__424 -#define __pyx_codeobj__425 __pyx_mstate_global->__pyx_codeobj__425 -#define __pyx_codeobj__427 __pyx_mstate_global->__pyx_codeobj__427 -#define __pyx_codeobj__429 __pyx_mstate_global->__pyx_codeobj__429 -#define __pyx_codeobj__431 __pyx_mstate_global->__pyx_codeobj__431 -#define __pyx_codeobj__433 __pyx_mstate_global->__pyx_codeobj__433 -#define __pyx_codeobj__435 __pyx_mstate_global->__pyx_codeobj__435 -#define __pyx_codeobj__437 __pyx_mstate_global->__pyx_codeobj__437 -#define __pyx_codeobj__438 __pyx_mstate_global->__pyx_codeobj__438 -#define __pyx_codeobj__440 __pyx_mstate_global->__pyx_codeobj__440 -#define __pyx_codeobj__442 __pyx_mstate_global->__pyx_codeobj__442 -#define __pyx_codeobj__444 __pyx_mstate_global->__pyx_codeobj__444 -#define __pyx_codeobj__445 __pyx_mstate_global->__pyx_codeobj__445 -#define __pyx_codeobj__446 __pyx_mstate_global->__pyx_codeobj__446 -#define __pyx_codeobj__447 __pyx_mstate_global->__pyx_codeobj__447 -#define __pyx_codeobj__448 __pyx_mstate_global->__pyx_codeobj__448 -#define __pyx_codeobj__450 __pyx_mstate_global->__pyx_codeobj__450 -#define __pyx_codeobj__452 __pyx_mstate_global->__pyx_codeobj__452 -#define __pyx_codeobj__453 __pyx_mstate_global->__pyx_codeobj__453 -#define __pyx_codeobj__454 __pyx_mstate_global->__pyx_codeobj__454 -#define __pyx_codeobj__455 __pyx_mstate_global->__pyx_codeobj__455 -#define __pyx_codeobj__456 __pyx_mstate_global->__pyx_codeobj__456 -#define __pyx_codeobj__457 __pyx_mstate_global->__pyx_codeobj__457 -#define __pyx_codeobj__459 __pyx_mstate_global->__pyx_codeobj__459 -#define __pyx_codeobj__460 __pyx_mstate_global->__pyx_codeobj__460 -#define __pyx_codeobj__461 __pyx_mstate_global->__pyx_codeobj__461 -#define __pyx_codeobj__462 __pyx_mstate_global->__pyx_codeobj__462 -#define __pyx_codeobj__463 __pyx_mstate_global->__pyx_codeobj__463 -#define __pyx_codeobj__464 __pyx_mstate_global->__pyx_codeobj__464 -#define __pyx_codeobj__465 __pyx_mstate_global->__pyx_codeobj__465 -#define __pyx_codeobj__466 __pyx_mstate_global->__pyx_codeobj__466 -#define __pyx_codeobj__467 __pyx_mstate_global->__pyx_codeobj__467 -#define __pyx_codeobj__469 __pyx_mstate_global->__pyx_codeobj__469 -#define __pyx_codeobj__471 __pyx_mstate_global->__pyx_codeobj__471 -#define __pyx_codeobj__472 __pyx_mstate_global->__pyx_codeobj__472 -#define __pyx_codeobj__473 __pyx_mstate_global->__pyx_codeobj__473 -#define __pyx_codeobj__474 __pyx_mstate_global->__pyx_codeobj__474 -#define __pyx_codeobj__475 __pyx_mstate_global->__pyx_codeobj__475 -#define __pyx_codeobj__477 __pyx_mstate_global->__pyx_codeobj__477 -#define __pyx_codeobj__479 __pyx_mstate_global->__pyx_codeobj__479 -#define __pyx_codeobj__481 __pyx_mstate_global->__pyx_codeobj__481 -#define __pyx_codeobj__483 __pyx_mstate_global->__pyx_codeobj__483 -#define __pyx_codeobj__484 __pyx_mstate_global->__pyx_codeobj__484 -#define __pyx_codeobj__485 __pyx_mstate_global->__pyx_codeobj__485 -#define __pyx_codeobj__487 __pyx_mstate_global->__pyx_codeobj__487 -#define __pyx_codeobj__488 __pyx_mstate_global->__pyx_codeobj__488 -#define __pyx_codeobj__489 __pyx_mstate_global->__pyx_codeobj__489 -#define __pyx_codeobj__490 __pyx_mstate_global->__pyx_codeobj__490 -#define __pyx_codeobj__492 __pyx_mstate_global->__pyx_codeobj__492 -#define __pyx_codeobj__493 __pyx_mstate_global->__pyx_codeobj__493 -#define __pyx_codeobj__494 __pyx_mstate_global->__pyx_codeobj__494 -#define __pyx_codeobj__495 __pyx_mstate_global->__pyx_codeobj__495 -#define __pyx_codeobj__496 __pyx_mstate_global->__pyx_codeobj__496 -#define __pyx_codeobj__498 __pyx_mstate_global->__pyx_codeobj__498 -#define __pyx_codeobj__499 __pyx_mstate_global->__pyx_codeobj__499 -#define __pyx_codeobj__500 __pyx_mstate_global->__pyx_codeobj__500 -#define __pyx_codeobj__501 __pyx_mstate_global->__pyx_codeobj__501 -#define __pyx_codeobj__502 __pyx_mstate_global->__pyx_codeobj__502 /* #### Code section: module_code ### */ +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286 + * + * @property + * cdef inline npy_intp itemsize(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ELSIZE(self) + * + */ + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_8itemsize_itemsize(PyArray_Descr *__pyx_v_self) { + npy_intp __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":287 + * @property + * cdef inline npy_intp itemsize(self) noexcept nogil: + * return PyDataType_ELSIZE(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyDataType_ELSIZE(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286 + * + * @property + * cdef inline npy_intp itemsize(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ELSIZE(self) + * + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290 + * + * @property + * cdef inline npy_intp alignment(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ALIGNMENT(self) + * + */ + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_5dtype_9alignment_alignment(PyArray_Descr *__pyx_v_self) { + npy_intp __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":291 + * @property + * cdef inline npy_intp alignment(self) noexcept nogil: + * return PyDataType_ALIGNMENT(self) # <<<<<<<<<<<<<< + * + * # Use fields/names with care as they may be NULL. You must check + */ + __pyx_r = PyDataType_ALIGNMENT(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":290 + * + * @property + * cdef inline npy_intp alignment(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_ALIGNMENT(self) + * + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296 + * # for this using PyDataType_HASFIELDS. + * @property + * cdef inline object fields(self): # <<<<<<<<<<<<<< + * return PyDataType_FIELDS(self) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_6fields_fields(PyArray_Descr *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1; + __Pyx_RefNannySetupContext("fields", 1); + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":297 + * @property + * cdef inline object fields(self): + * return PyDataType_FIELDS(self) # <<<<<<<<<<<<<< + * + * @property + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyDataType_FIELDS(__pyx_v_self); + __Pyx_INCREF(((PyObject *)__pyx_t_1)); + __pyx_r = ((PyObject *)__pyx_t_1); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":296 + * # for this using PyDataType_HASFIELDS. + * @property + * cdef inline object fields(self): # <<<<<<<<<<<<<< + * return PyDataType_FIELDS(self) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300 + * + * @property + * cdef inline tuple names(self): # <<<<<<<<<<<<<< + * return PyDataType_NAMES(self) + * + */ + +static CYTHON_INLINE PyObject *__pyx_f_5numpy_5dtype_5names_names(PyArray_Descr *__pyx_v_self) { + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1; + __Pyx_RefNannySetupContext("names", 1); + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":301 + * @property + * cdef inline tuple names(self): + * return PyDataType_NAMES(self) # <<<<<<<<<<<<<< + * + * # Use PyDataType_HASSUBARRAY to test whether this field is + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyDataType_NAMES(__pyx_v_self); + __Pyx_INCREF(((PyObject*)__pyx_t_1)); + __pyx_r = ((PyObject*)__pyx_t_1); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":300 + * + * @property + * cdef inline tuple names(self): # <<<<<<<<<<<<<< + * return PyDataType_NAMES(self) + * + */ + + /* function exit code */ + __pyx_L0:; + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307 + * # this field via the inline helper method PyDataType_SHAPE. + * @property + * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_SUBARRAY(self) + * + */ + +static CYTHON_INLINE PyArray_ArrayDescr *__pyx_f_5numpy_5dtype_8subarray_subarray(PyArray_Descr *__pyx_v_self) { + PyArray_ArrayDescr *__pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":308 + * @property + * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil: + * return PyDataType_SUBARRAY(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyDataType_SUBARRAY(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":307 + * # this field via the inline helper method PyDataType_SHAPE. + * @property + * cdef inline PyArray_ArrayDescr* subarray(self) noexcept nogil: # <<<<<<<<<<<<<< + * return PyDataType_SUBARRAY(self) + * + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311 + * + * @property + * cdef inline npy_uint64 flags(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The data types flags.""" + * return PyDataType_FLAGS(self) + */ + +static CYTHON_INLINE npy_uint64 __pyx_f_5numpy_5dtype_5flags_flags(PyArray_Descr *__pyx_v_self) { + npy_uint64 __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":313 + * cdef inline npy_uint64 flags(self) noexcept nogil: + * """The data types flags.""" + * return PyDataType_FLAGS(self) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PyDataType_FLAGS(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":311 + * + * @property + * cdef inline npy_uint64 flags(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The data types flags.""" + * return PyDataType_FLAGS(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323 + * + * @property + * cdef inline int numiter(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The number of arrays that need to be broadcast to the same shape.""" + * return PyArray_MultiIter_NUMITER(self) + */ + +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_7numiter_numiter(PyArrayMultiIterObject *__pyx_v_self) { + int __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":325 + * cdef inline int numiter(self) noexcept nogil: + * """The number of arrays that need to be broadcast to the same shape.""" + * return PyArray_MultiIter_NUMITER(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyArray_MultiIter_NUMITER(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":323 + * + * @property + * cdef inline int numiter(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The number of arrays that need to be broadcast to the same shape.""" + * return PyArray_MultiIter_NUMITER(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328 + * + * @property + * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The total broadcasted size.""" + * return PyArray_MultiIter_SIZE(self) + */ + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_4size_size(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":330 + * cdef inline npy_intp size(self) noexcept nogil: + * """The total broadcasted size.""" + * return PyArray_MultiIter_SIZE(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyArray_MultiIter_SIZE(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":328 + * + * @property + * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The total broadcasted size.""" + * return PyArray_MultiIter_SIZE(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333 + * + * @property + * cdef inline npy_intp index(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The current (1-d) index into the broadcasted result.""" + * return PyArray_MultiIter_INDEX(self) + */ + +static CYTHON_INLINE npy_intp __pyx_f_5numpy_9broadcast_5index_index(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":335 + * cdef inline npy_intp index(self) noexcept nogil: + * """The current (1-d) index into the broadcasted result.""" + * return PyArray_MultiIter_INDEX(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyArray_MultiIter_INDEX(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":333 + * + * @property + * cdef inline npy_intp index(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The current (1-d) index into the broadcasted result.""" + * return PyArray_MultiIter_INDEX(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338 + * + * @property + * cdef inline int nd(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The number of dimensions in the broadcasted result.""" + * return PyArray_MultiIter_NDIM(self) + */ + +static CYTHON_INLINE int __pyx_f_5numpy_9broadcast_2nd_nd(PyArrayMultiIterObject *__pyx_v_self) { + int __pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":340 + * cdef inline int nd(self) noexcept nogil: + * """The number of dimensions in the broadcasted result.""" + * return PyArray_MultiIter_NDIM(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyArray_MultiIter_NDIM(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":338 + * + * @property + * cdef inline int nd(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The number of dimensions in the broadcasted result.""" + * return PyArray_MultiIter_NDIM(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343 + * + * @property + * cdef inline npy_intp* dimensions(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The shape of the broadcasted result.""" + * return PyArray_MultiIter_DIMS(self) + */ + +static CYTHON_INLINE npy_intp *__pyx_f_5numpy_9broadcast_10dimensions_dimensions(PyArrayMultiIterObject *__pyx_v_self) { + npy_intp *__pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":345 + * cdef inline npy_intp* dimensions(self) noexcept nogil: + * """The shape of the broadcasted result.""" + * return PyArray_MultiIter_DIMS(self) # <<<<<<<<<<<<<< + * + * @property + */ + __pyx_r = PyArray_MultiIter_DIMS(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":343 + * + * @property + * cdef inline npy_intp* dimensions(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The shape of the broadcasted result.""" + * return PyArray_MultiIter_DIMS(self) + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348 + * + * @property + * cdef inline void** iters(self) noexcept nogil: # <<<<<<<<<<<<<< + * """An array of iterator objects that holds the iterators for the arrays to be broadcast together. + * On return, the iterators are adjusted for broadcasting.""" + */ + +static CYTHON_INLINE void **__pyx_f_5numpy_9broadcast_5iters_iters(PyArrayMultiIterObject *__pyx_v_self) { + void **__pyx_r; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":351 + * """An array of iterator objects that holds the iterators for the arrays to be broadcast together. + * On return, the iterators are adjusted for broadcasting.""" + * return PyArray_MultiIter_ITERS(self) # <<<<<<<<<<<<<< + * + * + */ + __pyx_r = PyArray_MultiIter_ITERS(__pyx_v_self); + goto __pyx_L0; + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":348 + * + * @property + * cdef inline void** iters(self) noexcept nogil: # <<<<<<<<<<<<<< + * """An array of iterator objects that holds the iterators for the arrays to be broadcast together. + * On return, the iterators are adjusted for broadcasting.""" + */ + + /* function exit code */ + __pyx_L0:; + return __pyx_r; +} + +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366 + * + * @property + * cdef inline PyObject* base(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a borrowed reference to the object owning the data/memory. + * """ + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_7ndarray_4base_base(PyArrayObject *__pyx_v_self) { PyObject *__pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":369 + * """Returns a borrowed reference to the object owning the data/memory. + * """ + * return PyArray_BASE(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_BASE(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":366 + * + * @property + * cdef inline PyObject* base(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a borrowed reference to the object owning the data/memory. + * """ + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372 + * + * @property + * cdef inline dtype descr(self): # <<<<<<<<<<<<<< + * """Returns an owned reference to the dtype of the array. + * """ + */ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArrayObject *__pyx_v_self) { PyArray_Descr *__pyx_r = NULL; @@ -10042,12 +8951,26 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray PyArray_Descr *__pyx_t_1; __Pyx_RefNannySetupContext("descr", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":375 + * """Returns an owned reference to the dtype of the array. + * """ + * return PyArray_DESCR(self) # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF((PyObject *)__pyx_r); __pyx_t_1 = PyArray_DESCR(__pyx_v_self); __Pyx_INCREF((PyObject *)((PyArray_Descr *)__pyx_t_1)); __pyx_r = ((PyArray_Descr *)__pyx_t_1); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":372 + * + * @property + * cdef inline dtype descr(self): # <<<<<<<<<<<<<< + * """Returns an owned reference to the dtype of the array. + * """ + */ /* function exit code */ __pyx_L0:; @@ -10056,71 +8979,183 @@ static CYTHON_INLINE PyArray_Descr *__pyx_f_5numpy_7ndarray_5descr_descr(PyArray return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378 + * + * @property + * cdef inline int ndim(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns the number of dimensions in the array. + * """ + */ static CYTHON_INLINE int __pyx_f_5numpy_7ndarray_4ndim_ndim(PyArrayObject *__pyx_v_self) { int __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":381 + * """Returns the number of dimensions in the array. + * """ + * return PyArray_NDIM(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_NDIM(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":378 + * + * @property + * cdef inline int ndim(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns the number of dimensions in the array. + * """ + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384 + * + * @property + * cdef inline npy_intp *shape(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a pointer to the dimensions/shape of the array. + * The number of elements matches the number of dimensions of the array (ndim). + */ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_5shape_shape(PyArrayObject *__pyx_v_self) { npy_intp *__pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":389 + * Can return NULL for 0-dimensional arrays. + * """ + * return PyArray_DIMS(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_DIMS(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":384 + * + * @property + * cdef inline npy_intp *shape(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a pointer to the dimensions/shape of the array. + * The number of elements matches the number of dimensions of the array (ndim). + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392 + * + * @property + * cdef inline npy_intp *strides(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a pointer to the strides of the array. + * The number of elements matches the number of dimensions of the array (ndim). + */ static CYTHON_INLINE npy_intp *__pyx_f_5numpy_7ndarray_7strides_strides(PyArrayObject *__pyx_v_self) { npy_intp *__pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":396 + * The number of elements matches the number of dimensions of the array (ndim). + * """ + * return PyArray_STRIDES(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_STRIDES(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":392 + * + * @property + * cdef inline npy_intp *strides(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns a pointer to the strides of the array. + * The number of elements matches the number of dimensions of the array (ndim). + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399 + * + * @property + * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns the total size (in number of elements) of the array. + * """ + */ static CYTHON_INLINE npy_intp __pyx_f_5numpy_7ndarray_4size_size(PyArrayObject *__pyx_v_self) { npy_intp __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":402 + * """Returns the total size (in number of elements) of the array. + * """ + * return PyArray_SIZE(self) # <<<<<<<<<<<<<< + * + * @property + */ __pyx_r = PyArray_SIZE(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":399 + * + * @property + * cdef inline npy_intp size(self) noexcept nogil: # <<<<<<<<<<<<<< + * """Returns the total size (in number of elements) of the array. + * """ + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405 + * + * @property + * cdef inline char* data(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The pointer to the data buffer as a char*. + * This is provided for legacy reasons to avoid direct struct field access. + */ static CYTHON_INLINE char *__pyx_f_5numpy_7ndarray_4data_data(PyArrayObject *__pyx_v_self) { char *__pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":411 + * of `PyArray_DATA()` instead, which returns a 'void*'. + * """ + * return PyArray_BYTES(self) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyArray_BYTES(__pyx_v_self); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":405 + * + * @property + * cdef inline char* data(self) noexcept nogil: # <<<<<<<<<<<<<< + * """The pointer to the data buffer as a char*. + * This is provided for legacy reasons to avoid direct struct field access. + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806 + * ctypedef long double complex clongdouble_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(1, a) + * + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__pyx_v_a) { PyObject *__pyx_r = NULL; @@ -10131,13 +9166,27 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew1", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":807 + * + * cdef inline object PyArray_MultiIterNew1(a): + * return PyArray_MultiIterNew(1, a) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew2(a, b): + */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 774, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(1, ((void *)__pyx_v_a)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 807, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":806 + * ctypedef long double complex clongdouble_t + * + * cdef inline object PyArray_MultiIterNew1(a): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(1, a) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10150,6 +9199,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew1(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(2, a, b) + * + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__pyx_v_a, PyObject *__pyx_v_b) { PyObject *__pyx_r = NULL; @@ -10160,13 +9216,27 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew2", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":810 + * + * cdef inline object PyArray_MultiIterNew2(a, b): + * return PyArray_MultiIterNew(2, a, b) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): + */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 777, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(2, ((void *)__pyx_v_a), ((void *)__pyx_v_b)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":809 + * return PyArray_MultiIterNew(1, a) + * + * cdef inline object PyArray_MultiIterNew2(a, b): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(2, a, b) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10179,6 +9249,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew2(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(3, a, b, c) + * + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c) { PyObject *__pyx_r = NULL; @@ -10189,13 +9266,27 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew3", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":813 + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): + * return PyArray_MultiIterNew(3, a, b, c) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): + */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 780, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(3, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":812 + * return PyArray_MultiIterNew(2, a, b) + * + * cdef inline object PyArray_MultiIterNew3(a, b, c): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(3, a, b, c) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10208,6 +9299,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew3(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(4, a, b, c, d) + * + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d) { PyObject *__pyx_r = NULL; @@ -10218,13 +9316,27 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew4", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":816 + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): + * return PyArray_MultiIterNew(4, a, b, c, d) # <<<<<<<<<<<<<< + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): + */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 783, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(4, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 816, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":815 + * return PyArray_MultiIterNew(3, a, b, c) + * + * cdef inline object PyArray_MultiIterNew4(a, b, c, d): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(4, a, b, c, d) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10237,6 +9349,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew4(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__pyx_v_a, PyObject *__pyx_v_b, PyObject *__pyx_v_c, PyObject *__pyx_v_d, PyObject *__pyx_v_e) { PyObject *__pyx_r = NULL; @@ -10247,13 +9366,27 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PyArray_MultiIterNew5", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":819 + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): + * return PyArray_MultiIterNew(5, a, b, c, d, e) # <<<<<<<<<<<<<< + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + */ __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 786, __pyx_L1_error) + __pyx_t_1 = PyArray_MultiIterNew(5, ((void *)__pyx_v_a), ((void *)__pyx_v_b), ((void *)__pyx_v_c), ((void *)__pyx_v_d), ((void *)__pyx_v_e)); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_r = __pyx_t_1; __pyx_t_1 = 0; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":818 + * return PyArray_MultiIterNew(4, a, b, c, d) + * + * cdef inline object PyArray_MultiIterNew5(a, b, c, d, e): # <<<<<<<<<<<<<< + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + */ /* function exit code */ __pyx_L1_error:; @@ -10266,23 +9399,60 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyArray_MultiIterNew5(PyObject *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__pyx_v_d) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; + PyObject *__pyx_t_2; __Pyx_RefNannySetupContext("PyDataType_SHAPE", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ __pyx_t_1 = PyDataType_HASSUBARRAY(__pyx_v_d); if (__pyx_t_1) { + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":823 + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape # <<<<<<<<<<<<<< + * else: + * return () + */ __Pyx_XDECREF(__pyx_r); - __Pyx_INCREF(((PyObject*)__pyx_v_d->subarray->shape)); - __pyx_r = ((PyObject*)__pyx_v_d->subarray->shape); + __pyx_t_2 = __pyx_f_5numpy_5dtype_8subarray_subarray(__pyx_v_d)->shape; + __Pyx_INCREF(((PyObject*)__pyx_t_2)); + __pyx_r = ((PyObject*)__pyx_t_2); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":822 + * + * cdef inline tuple PyDataType_SHAPE(dtype d): + * if PyDataType_HASSUBARRAY(d): # <<<<<<<<<<<<<< + * return d.subarray.shape + * else: + */ } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":825 + * return d.subarray.shape + * else: + * return () # <<<<<<<<<<<<<< + * + * + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_empty_tuple); @@ -10290,6 +9460,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ goto __pyx_L0; } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":821 + * return PyArray_MultiIterNew(5, a, b, c, d, e) + * + * cdef inline tuple PyDataType_SHAPE(dtype d): # <<<<<<<<<<<<<< + * if PyDataType_HASSUBARRAY(d): + * return d.subarray.shape + */ /* function exit code */ __pyx_L0:; @@ -10298,6 +9475,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_PyDataType_SHAPE(PyArray_Descr *__ return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<< + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) + */ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_arr, PyObject *__pyx_v_base) { int __pyx_t_1; @@ -10305,10 +9489,31 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a const char *__pyx_filename = NULL; int __pyx_clineno = 0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1010 + * + * cdef inline void set_array_base(ndarray arr, object base) except *: + * Py_INCREF(base) # important to do this before stealing the reference below! # <<<<<<<<<<<<<< + * PyArray_SetBaseObject(arr, base) + * + */ Py_INCREF(__pyx_v_base); - __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 970, __pyx_L1_error) - + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1011 + * cdef inline void set_array_base(ndarray arr, object base) except *: + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) # <<<<<<<<<<<<<< + * + * cdef inline object get_array_base(ndarray arr): + */ + __pyx_t_1 = PyArray_SetBaseObject(__pyx_v_arr, __pyx_v_base); if (unlikely(__pyx_t_1 == ((int)-1))) __PYX_ERR(2, 1011, __pyx_L1_error) + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1009 + * int _import_umath() except -1 + * + * cdef inline void set_array_base(ndarray arr, object base) except *: # <<<<<<<<<<<<<< + * Py_INCREF(base) # important to do this before stealing the reference below! + * PyArray_SetBaseObject(arr, base) + */ /* function exit code */ goto __pyx_L0; @@ -10317,6 +9522,13 @@ static CYTHON_INLINE void __pyx_f_5numpy_set_array_base(PyArrayObject *__pyx_v_a __pyx_L0:; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< + * base = PyArray_BASE(arr) + * if base is NULL: + */ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__pyx_v_arr) { PyObject *__pyx_v_base; @@ -10325,22 +9537,64 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py int __pyx_t_1; __Pyx_RefNannySetupContext("get_array_base", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1014 + * + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) # <<<<<<<<<<<<<< + * if base is NULL: + * return None + */ __pyx_v_base = PyArray_BASE(__pyx_v_arr); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< + * return None + * return base + */ __pyx_t_1 = (__pyx_v_base == NULL); if (__pyx_t_1) { + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1016 + * base = PyArray_BASE(arr) + * if base is NULL: + * return None # <<<<<<<<<<<<<< + * return base + * + */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1015 + * cdef inline object get_array_base(ndarray arr): + * base = PyArray_BASE(arr) + * if base is NULL: # <<<<<<<<<<<<<< + * return None + * return base + */ } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1017 + * if base is NULL: + * return None + * return base # <<<<<<<<<<<<<< + * + * # Versions of the import_* functions which are more suitable for + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(((PyObject *)__pyx_v_base)); __pyx_r = ((PyObject *)__pyx_v_base); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1013 + * PyArray_SetBaseObject(arr, base) + * + * cdef inline object get_array_base(ndarray arr): # <<<<<<<<<<<<<< + * base = PyArray_BASE(arr) + * if base is NULL: + */ /* function exit code */ __pyx_L0:; @@ -10349,6 +9603,13 @@ static CYTHON_INLINE PyObject *__pyx_f_5numpy_get_array_base(PyArrayObject *__py return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< + * try: + * __pyx_import_array() + */ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_r; @@ -10366,6 +9627,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_array", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10375,8 +9643,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 982, __pyx_L3_error) - + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1023 + * cdef inline int import_array() except -1: + * try: + * __pyx_import_array() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy._core.multiarray failed to import") + */ + __pyx_t_4 = _import_array(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1023, __pyx_L3_error) + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -10384,22 +9666,43 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1024 + * try: + * __pyx_import_array() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy._core.multiarray failed to import") + * + */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_array", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 983, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1024, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 984, __pyx_L5_except_error) + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_umath() except -1: + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple_, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1025, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(2, 984, __pyx_L5_except_error) + __PYX_ERR(2, 1025, __pyx_L5_except_error) } goto __pyx_L5_except_error; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1022 + * # Cython code. + * cdef inline int import_array() except -1: + * try: # <<<<<<<<<<<<<< + * __pyx_import_array() + * except Exception: + */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); @@ -10409,6 +9712,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1021 + * # Versions of the import_* functions which are more suitable for + * # Cython code. + * cdef inline int import_array() except -1: # <<<<<<<<<<<<<< + * try: + * __pyx_import_array() + */ /* function exit code */ __pyx_r = 0; @@ -10425,6 +9735,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_array(void) { return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027 + * raise ImportError("numpy._core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_r; @@ -10442,6 +9759,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_umath", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10451,8 +9775,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 988, __pyx_L3_error) - + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1029 + * cdef inline int import_umath() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy._core.umath failed to import") + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1029, __pyx_L3_error) + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -10460,22 +9798,43 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1030 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy._core.umath failed to import") + * + */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_umath", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 989, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1030, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 990, __pyx_L5_except_error) + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 + * _import_umath() + * except Exception: + * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_ufunc() except -1: + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1031, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(2, 990, __pyx_L5_except_error) + __PYX_ERR(2, 1031, __pyx_L5_except_error) } goto __pyx_L5_except_error; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1028 + * + * cdef inline int import_umath() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); @@ -10485,6 +9844,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1027 + * raise ImportError("numpy._core.multiarray failed to import") + * + * cdef inline int import_umath() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ /* function exit code */ __pyx_r = 0; @@ -10501,6 +9867,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_umath(void) { return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033 + * raise ImportError("numpy._core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_r; @@ -10518,6 +9891,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { int __pyx_clineno = 0; __Pyx_RefNannySetupContext("import_ufunc", 1); + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -10527,8 +9907,22 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __Pyx_XGOTREF(__pyx_t_3); /*try:*/ { - __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 994, __pyx_L3_error) - + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1035 + * cdef inline int import_ufunc() except -1: + * try: + * _import_umath() # <<<<<<<<<<<<<< + * except Exception: + * raise ImportError("numpy._core.umath failed to import") + */ + __pyx_t_4 = _import_umath(); if (unlikely(__pyx_t_4 == ((int)-1))) __PYX_ERR(2, 1035, __pyx_L3_error) + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ } __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -10536,22 +9930,43 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { goto __pyx_L8_try_end; __pyx_L3_error:; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1036 + * try: + * _import_umath() + * except Exception: # <<<<<<<<<<<<<< + * raise ImportError("numpy._core.umath failed to import") + * + */ __pyx_t_4 = __Pyx_PyErr_ExceptionMatches(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0]))); if (__pyx_t_4) { __Pyx_AddTraceback("numpy.import_ufunc", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 995, __pyx_L5_except_error) + if (__Pyx_GetException(&__pyx_t_5, &__pyx_t_6, &__pyx_t_7) < 0) __PYX_ERR(2, 1036, __pyx_L5_except_error) __Pyx_XGOTREF(__pyx_t_5); __Pyx_XGOTREF(__pyx_t_6); __Pyx_XGOTREF(__pyx_t_7); - __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 996, __pyx_L5_except_error) + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1037 + * _import_umath() + * except Exception: + * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<< + * + * + */ + __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_ImportError, __pyx_tuple__2, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(2, 1037, __pyx_L5_except_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_Raise(__pyx_t_8, 0, 0, 0); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - __PYX_ERR(2, 996, __pyx_L5_except_error) + __PYX_ERR(2, 1037, __pyx_L5_except_error) } goto __pyx_L5_except_error; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1034 + * + * cdef inline int import_ufunc() except -1: + * try: # <<<<<<<<<<<<<< + * _import_umath() + * except Exception: + */ __pyx_L5_except_error:; __Pyx_XGIVEREF(__pyx_t_1); __Pyx_XGIVEREF(__pyx_t_2); @@ -10561,6 +9976,13 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { __pyx_L8_try_end:; } + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1033 + * raise ImportError("numpy._core.umath failed to import") + * + * cdef inline int import_ufunc() except -1: # <<<<<<<<<<<<<< + * try: + * _import_umath() + */ /* function exit code */ __pyx_r = 0; @@ -10577,71 +9999,183 @@ static CYTHON_INLINE int __pyx_f_5numpy_import_ufunc(void) { return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040 + * + * + * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.timedelta64)` + */ static CYTHON_INLINE int __pyx_f_5numpy_is_timedelta64_object(PyObject *__pyx_v_obj) { int __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1052 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyTimedeltaArrType_Type) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyTimedeltaArrType_Type)); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1040 + * + * + * cdef inline bint is_timedelta64_object(object obj) noexcept: # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.timedelta64)` + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055 + * + * + * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.datetime64)` + */ static CYTHON_INLINE int __pyx_f_5numpy_is_datetime64_object(PyObject *__pyx_v_obj) { int __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1067 + * bool + * """ + * return PyObject_TypeCheck(obj, &PyDatetimeArrType_Type) # <<<<<<<<<<<<<< + * + * + */ __pyx_r = PyObject_TypeCheck(__pyx_v_obj, (&PyDatetimeArrType_Type)); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1055 + * + * + * cdef inline bint is_datetime64_object(object obj) noexcept: # <<<<<<<<<<<<<< + * """ + * Cython equivalent of `isinstance(obj, np.datetime64)` + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy datetime64 object + */ static CYTHON_INLINE npy_datetime __pyx_f_5numpy_get_datetime64_value(PyObject *__pyx_v_obj) { npy_datetime __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1077 + * also needed. That can be found using `get_datetime64_unit`. + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ __pyx_r = ((PyDatetimeScalarObject *)__pyx_v_obj)->obval; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1070 + * + * + * cdef inline npy_datetime get_datetime64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy datetime64 object + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy timedelta64 object + */ static CYTHON_INLINE npy_timedelta __pyx_f_5numpy_get_timedelta64_value(PyObject *__pyx_v_obj) { npy_timedelta __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1084 + * returns the int64 value underlying scalar numpy timedelta64 object + * """ + * return (obj).obval # <<<<<<<<<<<<<< + * + * + */ __pyx_r = ((PyTimedeltaScalarObject *)__pyx_v_obj)->obval; goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1080 + * + * + * cdef inline npy_timedelta get_timedelta64_value(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the int64 value underlying scalar numpy timedelta64 object + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the unit part of the dtype for a numpy datetime64 object. + */ static CYTHON_INLINE NPY_DATETIMEUNIT __pyx_f_5numpy_get_datetime64_unit(PyObject *__pyx_v_obj) { NPY_DATETIMEUNIT __pyx_r; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1091 + * returns the unit part of the dtype for a numpy datetime64 object. + * """ + * return (obj).obmeta.base # <<<<<<<<<<<<<< + * + * + */ __pyx_r = ((NPY_DATETIMEUNIT)((PyDatetimeScalarObject *)__pyx_v_obj)->obmeta.base); goto __pyx_L0; + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1087 + * + * + * cdef inline NPY_DATETIMEUNIT get_datetime64_unit(object obj) noexcept nogil: # <<<<<<<<<<<<<< + * """ + * returns the unit part of the dtype for a numpy datetime64 object. + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ static PyObject *__pyx_pw_5talib_7_ta_lib_1_ta_check_success(PyObject *__pyx_self, #if CYTHON_METH_FASTCALL @@ -10661,130 +10195,417 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_check_success", 1); + /* "talib/_common.pxi":7 + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + * if ret_code == 0: # <<<<<<<<<<<<<< + * return True + * elif ret_code == 1: + */ switch (__pyx_v_ret_code) { case 0: + /* "talib/_common.pxi":8 + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + * if ret_code == 0: + * return True # <<<<<<<<<<<<<< + * elif ret_code == 1: + * description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)' + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; + /* "talib/_common.pxi":7 + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + * if ret_code == 0: # <<<<<<<<<<<<<< + * return True + * elif ret_code == 1: + */ break; case 1: + /* "talib/_common.pxi":10 + * return True + * elif ret_code == 1: + * description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)' # <<<<<<<<<<<<<< + * elif ret_code == 2: + * description = 'Bad Parameter (TA_BAD_PARAM)' + */ __Pyx_INCREF(__pyx_kp_s_Library_Not_Initialized_TA_LIB_N); __pyx_v_description = __pyx_kp_s_Library_Not_Initialized_TA_LIB_N; + /* "talib/_common.pxi":9 + * if ret_code == 0: + * return True + * elif ret_code == 1: # <<<<<<<<<<<<<< + * description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)' + * elif ret_code == 2: + */ break; case 2: + /* "talib/_common.pxi":12 + * description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)' + * elif ret_code == 2: + * description = 'Bad Parameter (TA_BAD_PARAM)' # <<<<<<<<<<<<<< + * elif ret_code == 3: + * description = 'Allocation Error (TA_ALLOC_ERR)' + */ __Pyx_INCREF(__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM); __pyx_v_description = __pyx_kp_s_Bad_Parameter_TA_BAD_PARAM; + /* "talib/_common.pxi":11 + * elif ret_code == 1: + * description = 'Library Not Initialized (TA_LIB_NOT_INITIALIZE)' + * elif ret_code == 2: # <<<<<<<<<<<<<< + * description = 'Bad Parameter (TA_BAD_PARAM)' + * elif ret_code == 3: + */ break; case 3: + /* "talib/_common.pxi":14 + * description = 'Bad Parameter (TA_BAD_PARAM)' + * elif ret_code == 3: + * description = 'Allocation Error (TA_ALLOC_ERR)' # <<<<<<<<<<<<<< + * elif ret_code == 4: + * description = 'Group Not Found (TA_GROUP_NOT_FOUND)' + */ __Pyx_INCREF(__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR); __pyx_v_description = __pyx_kp_s_Allocation_Error_TA_ALLOC_ERR; + /* "talib/_common.pxi":13 + * elif ret_code == 2: + * description = 'Bad Parameter (TA_BAD_PARAM)' + * elif ret_code == 3: # <<<<<<<<<<<<<< + * description = 'Allocation Error (TA_ALLOC_ERR)' + * elif ret_code == 4: + */ break; case 4: + /* "talib/_common.pxi":16 + * description = 'Allocation Error (TA_ALLOC_ERR)' + * elif ret_code == 4: + * description = 'Group Not Found (TA_GROUP_NOT_FOUND)' # <<<<<<<<<<<<<< + * elif ret_code == 5: + * description = 'Function Not Found (TA_FUNC_NOT_FOUND)' + */ __Pyx_INCREF(__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU); __pyx_v_description = __pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU; + /* "talib/_common.pxi":15 + * elif ret_code == 3: + * description = 'Allocation Error (TA_ALLOC_ERR)' + * elif ret_code == 4: # <<<<<<<<<<<<<< + * description = 'Group Not Found (TA_GROUP_NOT_FOUND)' + * elif ret_code == 5: + */ break; case 5: + /* "talib/_common.pxi":18 + * description = 'Group Not Found (TA_GROUP_NOT_FOUND)' + * elif ret_code == 5: + * description = 'Function Not Found (TA_FUNC_NOT_FOUND)' # <<<<<<<<<<<<<< + * elif ret_code == 6: + * description = 'Invalid Handle (TA_INVALID_HANDLE)' + */ __Pyx_INCREF(__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F); __pyx_v_description = __pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F; + /* "talib/_common.pxi":17 + * elif ret_code == 4: + * description = 'Group Not Found (TA_GROUP_NOT_FOUND)' + * elif ret_code == 5: # <<<<<<<<<<<<<< + * description = 'Function Not Found (TA_FUNC_NOT_FOUND)' + * elif ret_code == 6: + */ break; case 6: + /* "talib/_common.pxi":20 + * description = 'Function Not Found (TA_FUNC_NOT_FOUND)' + * elif ret_code == 6: + * description = 'Invalid Handle (TA_INVALID_HANDLE)' # <<<<<<<<<<<<<< + * elif ret_code == 7: + * description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)' + */ __Pyx_INCREF(__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE); __pyx_v_description = __pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE; + /* "talib/_common.pxi":19 + * elif ret_code == 5: + * description = 'Function Not Found (TA_FUNC_NOT_FOUND)' + * elif ret_code == 6: # <<<<<<<<<<<<<< + * description = 'Invalid Handle (TA_INVALID_HANDLE)' + * elif ret_code == 7: + */ break; case 7: + /* "talib/_common.pxi":22 + * description = 'Invalid Handle (TA_INVALID_HANDLE)' + * elif ret_code == 7: + * description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)' # <<<<<<<<<<<<<< + * elif ret_code == 8: + * description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)' + */ __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA); __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Holder_TA_INVA; + /* "talib/_common.pxi":21 + * elif ret_code == 6: + * description = 'Invalid Handle (TA_INVALID_HANDLE)' + * elif ret_code == 7: # <<<<<<<<<<<<<< + * description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)' + * elif ret_code == 8: + */ break; case 8: + /* "talib/_common.pxi":24 + * description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)' + * elif ret_code == 8: + * description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)' # <<<<<<<<<<<<<< + * elif ret_code == 9: + * description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)' + */ __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Holder_Type_TA); __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Holder_Type_TA; + /* "talib/_common.pxi":23 + * elif ret_code == 7: + * description = 'Invalid Parameter Holder (TA_INVALID_PARAM_HOLDER)' + * elif ret_code == 8: # <<<<<<<<<<<<<< + * description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)' + * elif ret_code == 9: + */ break; case 9: + /* "talib/_common.pxi":26 + * description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)' + * elif ret_code == 9: + * description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)' # <<<<<<<<<<<<<< + * elif ret_code == 10: + * description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)' + */ __Pyx_INCREF(__pyx_kp_s_Invalid_Parameter_Function_TA_IN); __pyx_v_description = __pyx_kp_s_Invalid_Parameter_Function_TA_IN; + /* "talib/_common.pxi":25 + * elif ret_code == 8: + * description = 'Invalid Parameter Holder Type (TA_INVALID_PARAM_HOLDER_TYPE)' + * elif ret_code == 9: # <<<<<<<<<<<<<< + * description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)' + * elif ret_code == 10: + */ break; case 10: + /* "talib/_common.pxi":28 + * description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)' + * elif ret_code == 10: + * description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)' # <<<<<<<<<<<<<< + * elif ret_code == 11: + * description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)' + */ __Pyx_INCREF(__pyx_kp_s_Input_Not_All_Initialized_TA_INP); __pyx_v_description = __pyx_kp_s_Input_Not_All_Initialized_TA_INP; + /* "talib/_common.pxi":27 + * elif ret_code == 9: + * description = 'Invalid Parameter Function (TA_INVALID_PARAM_FUNCTION)' + * elif ret_code == 10: # <<<<<<<<<<<<<< + * description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 11: + */ break; case 11: + /* "talib/_common.pxi":30 + * description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 11: + * description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)' # <<<<<<<<<<<<<< + * elif ret_code == 12: + * description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)' + */ __Pyx_INCREF(__pyx_kp_s_Output_Not_All_Initialized_TA_OU); __pyx_v_description = __pyx_kp_s_Output_Not_All_Initialized_TA_OU; + /* "talib/_common.pxi":29 + * elif ret_code == 10: + * description = 'Input Not All Initialized (TA_INPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 11: # <<<<<<<<<<<<<< + * description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 12: + */ break; case 12: + /* "talib/_common.pxi":32 + * description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 12: + * description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)' # <<<<<<<<<<<<<< + * elif ret_code == 13: + * description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)' + */ __Pyx_INCREF(__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT); __pyx_v_description = __pyx_kp_s_Out_of_Range_Start_Index_TA_OUT; + /* "talib/_common.pxi":31 + * elif ret_code == 11: + * description = 'Output Not All Initialized (TA_OUTPUT_NOT_ALL_INITIALIZE)' + * elif ret_code == 12: # <<<<<<<<<<<<<< + * description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)' + * elif ret_code == 13: + */ break; case 13: + /* "talib/_common.pxi":34 + * description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)' + * elif ret_code == 13: + * description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)' # <<<<<<<<<<<<<< + * elif ret_code == 14: + * description = 'Invalid List Type (TA_INVALID_LIST_TYPE)' + */ __Pyx_INCREF(__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF); __pyx_v_description = __pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF; + /* "talib/_common.pxi":33 + * elif ret_code == 12: + * description = 'Out-of-Range Start Index (TA_OUT_OF_RANGE_START_INDEX)' + * elif ret_code == 13: # <<<<<<<<<<<<<< + * description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)' + * elif ret_code == 14: + */ break; case 14: + /* "talib/_common.pxi":36 + * description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)' + * elif ret_code == 14: + * description = 'Invalid List Type (TA_INVALID_LIST_TYPE)' # <<<<<<<<<<<<<< + * elif ret_code == 15: + * description = 'Bad Object (TA_BAD_OBJECT)' + */ __Pyx_INCREF(__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS); __pyx_v_description = __pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS; + /* "talib/_common.pxi":35 + * elif ret_code == 13: + * description = 'Out-of-Range End Index (TA_OUT_OF_RANGE_END_INDEX)' + * elif ret_code == 14: # <<<<<<<<<<<<<< + * description = 'Invalid List Type (TA_INVALID_LIST_TYPE)' + * elif ret_code == 15: + */ break; case 15: + /* "talib/_common.pxi":38 + * description = 'Invalid List Type (TA_INVALID_LIST_TYPE)' + * elif ret_code == 15: + * description = 'Bad Object (TA_BAD_OBJECT)' # <<<<<<<<<<<<<< + * elif ret_code == 16: + * description = 'Not Supported (TA_NOT_SUPPORTED)' + */ __Pyx_INCREF(__pyx_kp_s_Bad_Object_TA_BAD_OBJECT); __pyx_v_description = __pyx_kp_s_Bad_Object_TA_BAD_OBJECT; + /* "talib/_common.pxi":37 + * elif ret_code == 14: + * description = 'Invalid List Type (TA_INVALID_LIST_TYPE)' + * elif ret_code == 15: # <<<<<<<<<<<<<< + * description = 'Bad Object (TA_BAD_OBJECT)' + * elif ret_code == 16: + */ break; case 16: + /* "talib/_common.pxi":40 + * description = 'Bad Object (TA_BAD_OBJECT)' + * elif ret_code == 16: + * description = 'Not Supported (TA_NOT_SUPPORTED)' # <<<<<<<<<<<<<< + * elif ret_code == 5000: + * description = 'Internal Error (TA_INTERNAL_ERROR)' + */ __Pyx_INCREF(__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED); __pyx_v_description = __pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED; + /* "talib/_common.pxi":39 + * elif ret_code == 15: + * description = 'Bad Object (TA_BAD_OBJECT)' + * elif ret_code == 16: # <<<<<<<<<<<<<< + * description = 'Not Supported (TA_NOT_SUPPORTED)' + * elif ret_code == 5000: + */ break; case 0x1388: + /* "talib/_common.pxi":42 + * description = 'Not Supported (TA_NOT_SUPPORTED)' + * elif ret_code == 5000: + * description = 'Internal Error (TA_INTERNAL_ERROR)' # <<<<<<<<<<<<<< + * elif ret_code == 65535: + * description = 'Unknown Error (TA_UNKNOWN_ERR)' + */ __Pyx_INCREF(__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR); __pyx_v_description = __pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR; + /* "talib/_common.pxi":41 + * elif ret_code == 16: + * description = 'Not Supported (TA_NOT_SUPPORTED)' + * elif ret_code == 5000: # <<<<<<<<<<<<<< + * description = 'Internal Error (TA_INTERNAL_ERROR)' + * elif ret_code == 65535: + */ break; case 0xFFFF: + /* "talib/_common.pxi":44 + * description = 'Internal Error (TA_INTERNAL_ERROR)' + * elif ret_code == 65535: + * description = 'Unknown Error (TA_UNKNOWN_ERR)' # <<<<<<<<<<<<<< + * else: + * description = 'Unknown Error' + */ __Pyx_INCREF(__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR); __pyx_v_description = __pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR; + /* "talib/_common.pxi":43 + * elif ret_code == 5000: + * description = 'Internal Error (TA_INTERNAL_ERROR)' + * elif ret_code == 65535: # <<<<<<<<<<<<<< + * description = 'Unknown Error (TA_UNKNOWN_ERR)' + * else: + */ break; default: + /* "talib/_common.pxi":46 + * description = 'Unknown Error (TA_UNKNOWN_ERR)' + * else: + * description = 'Unknown Error' # <<<<<<<<<<<<<< + * raise Exception('%s function failed with error code %s: %s' % ( + * function_name, ret_code, description)) + */ __Pyx_INCREF(__pyx_kp_s_Unknown_Error); __pyx_v_description = __pyx_kp_s_Unknown_Error; break; } + /* "talib/_common.pxi":48 + * description = 'Unknown Error' + * raise Exception('%s function failed with error code %s: %s' % ( + * function_name, ret_code, description)) # <<<<<<<<<<<<<< + * + * def _ta_initialize(): + */ __pyx_t_1 = __Pyx_PyInt_From_TA_RetCode(__pyx_v_ret_code); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error) @@ -10799,6 +10620,13 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_v_description)) __PYX_ERR(0, 48, __pyx_L1_error); __pyx_t_1 = 0; + /* "talib/_common.pxi":47 + * else: + * description = 'Unknown Error' + * raise Exception('%s function failed with error code %s: %s' % ( # <<<<<<<<<<<<<< + * function_name, ret_code, description)) + * + */ __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_s_function_failed_with_error_co, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 47, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; @@ -10809,6 +10637,13 @@ static PyObject *__pyx_f_5talib_7_ta_lib__ta_check_success(PyObject *__pyx_v_fun __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __PYX_ERR(0, 47, __pyx_L1_error) + /* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ /* function exit code */ __pyx_L1_error:; @@ -10965,6 +10800,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib__ta_check_success(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_3_ta_initialize(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -10992,12 +10834,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_initialize", 1); + /* "talib/_common.pxi":52 + * def _ta_initialize(): + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() # <<<<<<<<<<<<<< + * _ta_check_success('TA_Initialize', ret_code) + * + */ __pyx_v_ret_code = TA_Initialize(); + /* "talib/_common.pxi":53 + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + * _ta_check_success('TA_Initialize', ret_code) # <<<<<<<<<<<<<< + * + * def _ta_shutdown(): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_Initialize, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 53, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11012,6 +10875,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_2_ta_initialize(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_5_ta_shutdown(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -11039,12 +10909,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_shutdown", 1); + /* "talib/_common.pxi":57 + * def _ta_shutdown(): + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() # <<<<<<<<<<<<<< + * _ta_check_success('TA_Shutdown', ret_code) + * + */ __pyx_v_ret_code = TA_Shutdown(); + /* "talib/_common.pxi":58 + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + * _ta_check_success('TA_Shutdown', ret_code) # <<<<<<<<<<<<<< + * + * class MA_Type(object): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_Shutdown, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 58, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11059,6 +10950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_4_ta_shutdown(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_1__init__(PyObject *__pyx_self, @@ -11167,6 +11065,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 1); + /* "talib/_common.pxi":65 + * def __init__(self): + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', # <<<<<<<<<<<<<< + * MA_Type.EMA: 'Exponential Moving Average', + * MA_Type.WMA: 'Weighted Moving Average', + */ __pyx_t_1 = __Pyx_PyDict_NewPresized(9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error) @@ -11177,6 +11082,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Simple_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_common.pxi":66 + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + * MA_Type.EMA: 'Exponential Moving Average', # <<<<<<<<<<<<<< + * MA_Type.WMA: 'Weighted Moving Average', + * MA_Type.DEMA: 'Double Exponential Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_EMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 66, __pyx_L1_error) @@ -11185,6 +11097,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_kp_s_Exponential_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":67 + * MA_Type.SMA: 'Simple Moving Average', + * MA_Type.EMA: 'Exponential Moving Average', + * MA_Type.WMA: 'Weighted Moving Average', # <<<<<<<<<<<<<< + * MA_Type.DEMA: 'Double Exponential Moving Average', + * MA_Type.TEMA: 'Triple Exponential Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 67, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_WMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 67, __pyx_L1_error) @@ -11193,6 +11112,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Weighted_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_common.pxi":68 + * MA_Type.EMA: 'Exponential Moving Average', + * MA_Type.WMA: 'Weighted Moving Average', + * MA_Type.DEMA: 'Double Exponential Moving Average', # <<<<<<<<<<<<<< + * MA_Type.TEMA: 'Triple Exponential Moving Average', + * MA_Type.TRIMA: 'Triangular Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_DEMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 68, __pyx_L1_error) @@ -11201,6 +11127,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_kp_s_Double_Exponential_Moving_Averag) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":69 + * MA_Type.WMA: 'Weighted Moving Average', + * MA_Type.DEMA: 'Double Exponential Moving Average', + * MA_Type.TEMA: 'Triple Exponential Moving Average', # <<<<<<<<<<<<<< + * MA_Type.TRIMA: 'Triangular Moving Average', + * MA_Type.KAMA: 'Kaufman Adaptive Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_TEMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error) @@ -11209,6 +11142,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Triple_Exponential_Moving_Averag) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_common.pxi":70 + * MA_Type.DEMA: 'Double Exponential Moving Average', + * MA_Type.TEMA: 'Triple Exponential Moving Average', + * MA_Type.TRIMA: 'Triangular Moving Average', # <<<<<<<<<<<<<< + * MA_Type.KAMA: 'Kaufman Adaptive Moving Average', + * MA_Type.MAMA: 'MESA Adaptive Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_TRIMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 70, __pyx_L1_error) @@ -11217,6 +11157,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_kp_s_Triangular_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":71 + * MA_Type.TEMA: 'Triple Exponential Moving Average', + * MA_Type.TRIMA: 'Triangular Moving Average', + * MA_Type.KAMA: 'Kaufman Adaptive Moving Average', # <<<<<<<<<<<<<< + * MA_Type.MAMA: 'MESA Adaptive Moving Average', + * MA_Type.T3: 'Triple Generalized Double Exponential Moving Average', + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 71, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_KAMA); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error) @@ -11225,6 +11172,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Kaufman_Adaptive_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_common.pxi":72 + * MA_Type.TRIMA: 'Triangular Moving Average', + * MA_Type.KAMA: 'Kaufman Adaptive Moving Average', + * MA_Type.MAMA: 'MESA Adaptive Moving Average', # <<<<<<<<<<<<<< + * MA_Type.T3: 'Triple Generalized Double Exponential Moving Average', + * } + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_MAMA); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 72, __pyx_L1_error) @@ -11233,6 +11187,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_2, __pyx_kp_s_MESA_Adaptive_Moving_Average) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":73 + * MA_Type.KAMA: 'Kaufman Adaptive Moving Average', + * MA_Type.MAMA: 'MESA Adaptive Moving Average', + * MA_Type.T3: 'Triple Generalized Double Exponential Moving Average', # <<<<<<<<<<<<<< + * } + * + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_T3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error) @@ -11241,9 +11202,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje if (PyDict_SetItem(__pyx_t_1, __pyx_t_3, __pyx_kp_s_Triple_Generalized_Double_Expone) < 0) __PYX_ERR(0, 65, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_common.pxi":64 + * + * def __init__(self): + * self._lookup = { # <<<<<<<<<<<<<< + * MA_Type.SMA: 'Simple Moving Average', + * MA_Type.EMA: 'Exponential Moving Average', + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lookup, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11260,6 +11235,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type___init__(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_7MA_Type_3__getitem__(PyObject *__pyx_self, @@ -11382,6 +11364,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__getitem__", 1); + /* "talib/_common.pxi":77 + * + * def __getitem__(self, type_): + * return self._lookup[type_] # <<<<<<<<<<<<<< + * + * MA_Type = MA_Type() + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lookup); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -11392,6 +11381,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ /* function exit code */ __pyx_L1_error:; @@ -11405,6 +11401,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_7MA_Type_2__getitem__(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_7_ta_set_unstable_period(PyObject *__pyx_self, @@ -11531,6 +11534,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_unstable_period", 1); + /* "talib/_common.pxi":92 + * def _ta_set_unstable_period(name, period): + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] # <<<<<<<<<<<<<< + * ret_code = lib.TA_SetUnstablePeriod(id, period) + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 92, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 92, __pyx_L1_error) @@ -11540,13 +11550,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_id = __pyx_t_3; + /* "talib/_common.pxi":93 + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + * ret_code = lib.TA_SetUnstablePeriod(id, period) # <<<<<<<<<<<<<< + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + */ __pyx_t_4 = __Pyx_PyInt_As_unsigned_int(__pyx_v_period); if (unlikely((__pyx_t_4 == (unsigned int)-1) && PyErr_Occurred())) __PYX_ERR(0, 93, __pyx_L1_error) __pyx_v_ret_code = TA_SetUnstablePeriod(__pyx_v_id, __pyx_t_4); + /* "talib/_common.pxi":94 + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + * ret_code = lib.TA_SetUnstablePeriod(id, period) + * _ta_check_success('TA_SetUnstablePeriod', ret_code) # <<<<<<<<<<<<<< + * + * def _ta_get_unstable_period(name): + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SetUnstablePeriod, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 94, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11562,6 +11593,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_6_ta_set_unstable_period(CYTHON_UNUSED return __pyx_r; } +/* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_9_ta_get_unstable_period(PyObject *__pyx_self, @@ -11672,6 +11710,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_get_unstable_period", 1); + /* "talib/_common.pxi":98 + * def _ta_get_unstable_period(name): + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] # <<<<<<<<<<<<<< + * period = lib.TA_GetUnstablePeriod(id) + * return period + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 98, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 98, __pyx_L1_error) @@ -11681,8 +11726,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __pyx_v_id = __pyx_t_3; + /* "talib/_common.pxi":99 + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + * period = lib.TA_GetUnstablePeriod(id) # <<<<<<<<<<<<<< + * return period + * + */ __pyx_v_period = TA_GetUnstablePeriod(__pyx_v_id); + /* "talib/_common.pxi":100 + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + * period = lib.TA_GetUnstablePeriod(id) + * return period # <<<<<<<<<<<<<< + * + * def _ta_set_compatibility(value): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyInt_From_unsigned_int(__pyx_v_period); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 100, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -11690,6 +11749,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ /* function exit code */ __pyx_L1_error:; @@ -11703,6 +11769,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8_ta_get_unstable_period(CYTHON_UNUSED return __pyx_r; } +/* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_11_ta_set_compatibility(PyObject *__pyx_self, @@ -11811,13 +11884,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_compatibility", 1); + /* "talib/_common.pxi":104 + * def _ta_set_compatibility(value): + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) # <<<<<<<<<<<<<< + * _ta_check_success('TA_SetCompatibility', ret_code) + * + */ __pyx_t_1 = __Pyx_PyInt_As_TA_Compatibility(__pyx_v_value); if (unlikely((__pyx_t_1 == ((TA_Compatibility)-1)) && PyErr_Occurred())) __PYX_ERR(0, 104, __pyx_L1_error) __pyx_v_ret_code = TA_SetCompatibility(__pyx_t_1); + /* "talib/_common.pxi":105 + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + * _ta_check_success('TA_SetCompatibility', ret_code) # <<<<<<<<<<<<<< + * + * def _ta_get_compatibility(): + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SetCompatibility, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -11832,6 +11926,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_10_ta_set_compatibility(CYTHON_UNUSED return __pyx_r; } +/* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_13_ta_get_compatibility(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -11859,8 +11960,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_get_compatibility", 1); + /* "talib/_common.pxi":109 + * def _ta_get_compatibility(): + * cdef int value + * value = lib.TA_GetCompatibility() # <<<<<<<<<<<<<< + * return value + * + */ __pyx_v_value = TA_GetCompatibility(); + /* "talib/_common.pxi":110 + * cdef int value + * value = lib.TA_GetCompatibility() + * return value # <<<<<<<<<<<<<< + * + * class CandleSettingType(object): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -11868,6 +11983,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ /* function exit code */ __pyx_L1_error:; @@ -11880,6 +12002,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_12_ta_get_compatibility(CYTHON_UNUSED return __pyx_r; } +/* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_15_ta_set_candle_settings(PyObject *__pyx_self, @@ -12036,16 +12165,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSE int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_set_candle_settings", 1); + /* "talib/_common.pxi":126 + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) # <<<<<<<<<<<<<< + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + */ __pyx_t_1 = __Pyx_PyInt_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L1_error) __pyx_t_2 = __Pyx_PyInt_As_TA_RangeType(__pyx_v_rangetype); if (unlikely((__pyx_t_2 == ((TA_RangeType)-1)) && PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L1_error) __pyx_t_3 = __Pyx_PyInt_As_int(__pyx_v_avgperiod); if (unlikely((__pyx_t_3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L1_error) __pyx_t_4 = __pyx_PyFloat_AsDouble(__pyx_v_factor); if (unlikely((__pyx_t_4 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 126, __pyx_L1_error) __pyx_v_ret_code = TA_SetCandleSettings(__pyx_t_1, __pyx_t_2, __pyx_t_3, __pyx_t_4); + /* "talib/_common.pxi":127 + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + * _ta_check_success('TA_SetCandleSettings', ret_code) # <<<<<<<<<<<<<< + * + * def _ta_restore_candle_default_settings(settingtype): + */ __pyx_t_5 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SetCandleSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -12060,6 +12210,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_14_ta_set_candle_settings(CYTHON_UNUSE return __pyx_r; } +/* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_17_ta_restore_candle_default_settings(PyObject *__pyx_self, @@ -12168,13 +12325,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings( int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_restore_candle_default_settings", 1); + /* "talib/_common.pxi":131 + * def _ta_restore_candle_default_settings(settingtype): + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) # <<<<<<<<<<<<<< + * _ta_check_success('TA_RestoreCandleDefaultSettings', ret_code) + */ __pyx_t_1 = __Pyx_PyInt_As_TA_CandleSettingType(__pyx_v_settingtype); if (unlikely((__pyx_t_1 == ((TA_CandleSettingType)-1)) && PyErr_Occurred())) __PYX_ERR(0, 131, __pyx_L1_error) __pyx_v_ret_code = TA_RestoreCandleDefaultSettings(__pyx_t_1); + /* "talib/_common.pxi":132 + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + * _ta_check_success('TA_RestoreCandleDefaultSettings', ret_code) # <<<<<<<<<<<<<< + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_v_ret_code, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -12189,57 +12364,139 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_16_ta_restore_candle_default_settings( return __pyx_r; } +/* "talib/_func.pxi":20 + * from _ta_lib cimport TA_RetCode + * + * cdef np.ndarray check_array(np.ndarray real): # <<<<<<<<<<<<<< + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") + */ static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v_real) { PyArrayObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations int __pyx_t_1; PyObject *__pyx_t_2 = NULL; - int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_array", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":21 + * + * cdef np.ndarray check_array(np.ndarray real): + * if PyArray_TYPE(real) != np.NPY_DOUBLE: # <<<<<<<<<<<<<< + * raise Exception("input array type is not double") + * if real.ndim != 1: + */ __pyx_t_1 = (PyArray_TYPE(__pyx_v_real) != NPY_DOUBLE); if (unlikely(__pyx_t_1)) { + /* "talib/_func.pxi":22 + * cdef np.ndarray check_array(np.ndarray real): + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") # <<<<<<<<<<<<<< + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") + */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 22, __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, 22, __pyx_L1_error) + /* "talib/_func.pxi":21 + * + * cdef np.ndarray check_array(np.ndarray real): + * if PyArray_TYPE(real) != np.NPY_DOUBLE: # <<<<<<<<<<<<<< + * raise Exception("input array type is not double") + * if real.ndim != 1: + */ } - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4ndim_ndim(__pyx_v_real); if (unlikely(__pyx_t_3 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(3, 23, __pyx_L1_error) - __pyx_t_1 = (__pyx_t_3 != 1); + /* "talib/_func.pxi":23 + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") + * if real.ndim != 1: # <<<<<<<<<<<<<< + * raise Exception("input array has wrong dimensions") + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + */ + __pyx_t_1 = (__pyx_f_5numpy_7ndarray_4ndim_ndim(__pyx_v_real) != 1); if (unlikely(__pyx_t_1)) { + /* "talib/_func.pxi":24 + * raise Exception("input array type is not double") + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") # <<<<<<<<<<<<<< + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + * real = PyArray_GETCONTIGUOUS(real) + */ __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 24, __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, 24, __pyx_L1_error) + /* "talib/_func.pxi":23 + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") + * if real.ndim != 1: # <<<<<<<<<<<<<< + * raise Exception("input array has wrong dimensions") + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + */ } - __pyx_t_1 = (!((PyArray_FLAGS(__pyx_v_real) & NPY_C_CONTIGUOUS) != 0)); + /* "talib/_func.pxi":25 + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): # <<<<<<<<<<<<<< + * real = PyArray_GETCONTIGUOUS(real) + * return real + */ + __pyx_t_1 = (!((PyArray_FLAGS(__pyx_v_real) & NPY_ARRAY_C_CONTIGUOUS) != 0)); if (__pyx_t_1) { + /* "talib/_func.pxi":26 + * raise Exception("input array has wrong dimensions") + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + * real = PyArray_GETCONTIGUOUS(real) # <<<<<<<<<<<<<< + * return real + * + */ __pyx_t_2 = ((PyObject *)PyArray_GETCONTIGUOUS(__pyx_v_real)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 26, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_2)); __pyx_t_2 = 0; + /* "talib/_func.pxi":25 + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): # <<<<<<<<<<<<<< + * real = PyArray_GETCONTIGUOUS(real) + * return real + */ } + /* "talib/_func.pxi":27 + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + * real = PyArray_GETCONTIGUOUS(real) + * return real # <<<<<<<<<<<<<< + * + * cdef np.npy_intp check_length2(np.ndarray a1, np.ndarray a2) except -1: + */ __Pyx_XDECREF((PyObject *)__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_real); __pyx_r = __pyx_v_real; goto __pyx_L0; + /* "talib/_func.pxi":20 + * from _ta_lib cimport TA_RetCode + * + * cdef np.ndarray check_array(np.ndarray real): # <<<<<<<<<<<<<< + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") + */ /* function exit code */ __pyx_L1_error:; @@ -12253,168 +12510,373 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_check_array(PyArrayObject *__pyx_v return __pyx_r; } +/* "talib/_func.pxi":29 + * return real + * + * cdef np.npy_intp check_length2(np.ndarray a1, np.ndarray a2) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ static npy_intp __pyx_f_5talib_7_ta_lib_check_length2(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2) { npy_intp __pyx_v_length; npy_intp __pyx_r; __Pyx_RefNannyDeclarations - npy_intp *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length2", 1); - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 32, __pyx_L1_error) - __pyx_v_length = (__pyx_t_1[0]); - - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 33, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":32 + * cdef: + * np.npy_intp length + * length = a1.shape[0] # <<<<<<<<<<<<<< + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]); + + /* "talib/_func.pxi":33 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 34, __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; + /* "talib/_func.pxi":34 + * length = a1.shape[0] + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * return length + * + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 34, __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, 34, __pyx_L1_error) + /* "talib/_func.pxi":33 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ } + /* "talib/_func.pxi":35 + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + * return length # <<<<<<<<<<<<<< + * + * cdef np.npy_intp check_length3(np.ndarray a1, np.ndarray a2, np.ndarray a3) except -1: + */ __pyx_r = __pyx_v_length; goto __pyx_L0; + /* "talib/_func.pxi":29 + * return real + * + * cdef np.npy_intp check_length2(np.ndarray a1, np.ndarray a2) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("talib._ta_lib.check_length2", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __pyx_r = -1L; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } +/* "talib/_func.pxi":37 + * return length + * + * cdef np.npy_intp check_length3(np.ndarray a1, np.ndarray a2, np.ndarray a3) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ static npy_intp __pyx_f_5talib_7_ta_lib_check_length3(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3) { npy_intp __pyx_v_length; npy_intp __pyx_r; __Pyx_RefNannyDeclarations - npy_intp *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length3", 1); - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 40, __pyx_L1_error) - __pyx_v_length = (__pyx_t_1[0]); - - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 41, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":40 + * cdef: + * np.npy_intp length + * length = a1.shape[0] # <<<<<<<<<<<<<< + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]); + + /* "talib/_func.pxi":41 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 42, __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; + /* "talib/_func.pxi":42 + * length = a1.shape[0] + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 42, __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, 42, __pyx_L1_error) + /* "talib/_func.pxi":41 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + */ } - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 43, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":43 + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 44, __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; + /* "talib/_func.pxi":44 + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * return length + * + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 44, __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, 44, __pyx_L1_error) + /* "talib/_func.pxi":43 + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ } + /* "talib/_func.pxi":45 + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") + * return length # <<<<<<<<<<<<<< + * + * cdef np.npy_intp check_length4(np.ndarray a1, np.ndarray a2, np.ndarray a3, np.ndarray a4) except -1: + */ __pyx_r = __pyx_v_length; goto __pyx_L0; + /* "talib/_func.pxi":37 + * return length + * + * cdef np.npy_intp check_length3(np.ndarray a1, np.ndarray a2, np.ndarray a3) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("talib._ta_lib.check_length3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __pyx_r = -1L; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } +/* "talib/_func.pxi":47 + * return length + * + * cdef np.npy_intp check_length4(np.ndarray a1, np.ndarray a2, np.ndarray a3, np.ndarray a4) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ static npy_intp __pyx_f_5talib_7_ta_lib_check_length4(PyArrayObject *__pyx_v_a1, PyArrayObject *__pyx_v_a2, PyArrayObject *__pyx_v_a3, PyArrayObject *__pyx_v_a4) { npy_intp __pyx_v_length; npy_intp __pyx_r; __Pyx_RefNannyDeclarations - npy_intp *__pyx_t_1; - int __pyx_t_2; - PyObject *__pyx_t_3 = NULL; + int __pyx_t_1; + PyObject *__pyx_t_2 = NULL; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("check_length4", 1); - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 50, __pyx_L1_error) - __pyx_v_length = (__pyx_t_1[0]); - - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 51, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":50 + * cdef: + * np.npy_intp length + * length = a1.shape[0] # <<<<<<<<<<<<<< + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a1)[0]); + + /* "talib/_func.pxi":51 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a2)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 52, __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; + /* "talib/_func.pxi":52 + * length = a1.shape[0] + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 52, __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, 52, __pyx_L1_error) + /* "talib/_func.pxi":51 + * np.npy_intp length + * length = a1.shape[0] + * if length != a2.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + */ } - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 53, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":53 + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a4.shape[0]: + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a3)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 54, __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; + /* "talib/_func.pxi":54 + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * if length != a4.shape[0]: + * raise Exception("input array lengths are different") + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 54, __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, 54, __pyx_L1_error) + /* "talib/_func.pxi":53 + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") + * if length != a3.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * if length != a4.shape[0]: + */ } - __pyx_t_1 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a4); if (unlikely(__pyx_t_1 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 55, __pyx_L1_error) - __pyx_t_2 = (__pyx_v_length != (__pyx_t_1[0])); - if (unlikely(__pyx_t_2)) { + /* "talib/_func.pxi":55 + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") + * if length != a4.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ + __pyx_t_1 = (__pyx_v_length != (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_a4)[0])); + if (unlikely(__pyx_t_1)) { - __pyx_t_3 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 56, __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; + /* "talib/_func.pxi":56 + * raise Exception("input array lengths are different") + * if length != a4.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * return length + * + */ + __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_tuple__5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 56, __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, 56, __pyx_L1_error) + /* "talib/_func.pxi":55 + * if length != a3.shape[0]: + * raise Exception("input array lengths are different") + * if length != a4.shape[0]: # <<<<<<<<<<<<<< + * raise Exception("input array lengths are different") + * return length + */ } + /* "talib/_func.pxi":57 + * if length != a4.shape[0]: + * raise Exception("input array lengths are different") + * return length # <<<<<<<<<<<<<< + * + * cdef np.npy_int check_begidx1(np.npy_intp length, double* a1): + */ __pyx_r = __pyx_v_length; goto __pyx_L0; + /* "talib/_func.pxi":47 + * return length + * + * cdef np.npy_intp check_length4(np.ndarray a1, np.ndarray a2, np.ndarray a3, np.ndarray a4) except -1: # <<<<<<<<<<<<<< + * cdef: + * np.npy_intp length + */ /* function exit code */ __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_t_2); __Pyx_AddTraceback("talib._ta_lib.check_length4", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = -1; + __pyx_r = -1L; __pyx_L0:; __Pyx_RefNannyFinishContext(); return __pyx_r; } +/* "talib/_func.pxi":59 + * return length + * + * cdef np.npy_int check_begidx1(np.npy_intp length, double* a1): # <<<<<<<<<<<<<< + * cdef: + * double val + */ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, double *__pyx_v_a1) { double __pyx_v_val; @@ -12423,34 +12885,97 @@ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx1(npy_intp __pyx_v_length, do npy_intp __pyx_t_1; int __pyx_t_2; + /* "talib/_func.pxi":62 + * cdef: + * double val + * for i from 0 <= i < length: # <<<<<<<<<<<<<< + * val = a1[i] + * if val != val: + */ __pyx_t_1 = __pyx_v_length; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + /* "talib/_func.pxi":63 + * double val + * for i from 0 <= i < length: + * val = a1[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + /* "talib/_func.pxi":64 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":65 + * val = a1[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * return i + * else: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":64 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ } + /* "talib/_func.pxi":66 + * if val != val: + * continue + * return i # <<<<<<<<<<<<<< + * else: + * return length - 1 + */ __pyx_r = __pyx_v_i; goto __pyx_L0; __pyx_L3_continue:; } /*else*/ { + /* "talib/_func.pxi":68 + * return i + * else: + * return length - 1 # <<<<<<<<<<<<<< + * + * cdef np.npy_int check_begidx2(np.npy_intp length, double* a1, double* a2): + */ __pyx_r = (__pyx_v_length - 1); goto __pyx_L0; } + /* "talib/_func.pxi":59 + * return length + * + * cdef np.npy_int check_begidx1(np.npy_intp length, double* a1): # <<<<<<<<<<<<<< + * cdef: + * double val + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "talib/_func.pxi":70 + * return length - 1 + * + * cdef np.npy_int check_begidx2(np.npy_intp length, double* a1, double* a2): # <<<<<<<<<<<<<< + * cdef: + * double val + */ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2) { double __pyx_v_val; @@ -12459,43 +12984,134 @@ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx2(npy_intp __pyx_v_length, do npy_intp __pyx_t_1; int __pyx_t_2; + /* "talib/_func.pxi":73 + * cdef: + * double val + * for i from 0 <= i < length: # <<<<<<<<<<<<<< + * val = a1[i] + * if val != val: + */ __pyx_t_1 = __pyx_v_length; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + /* "talib/_func.pxi":74 + * double val + * for i from 0 <= i < length: + * val = a1[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + /* "talib/_func.pxi":75 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":76 + * val = a1[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a2[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":75 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ } + /* "talib/_func.pxi":77 + * if val != val: + * continue + * val = a2[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + /* "talib/_func.pxi":78 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":79 + * val = a2[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * return i + * else: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":78 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ } + /* "talib/_func.pxi":80 + * if val != val: + * continue + * return i # <<<<<<<<<<<<<< + * else: + * return length - 1 + */ __pyx_r = __pyx_v_i; goto __pyx_L0; __pyx_L3_continue:; } /*else*/ { + /* "talib/_func.pxi":82 + * return i + * else: + * return length - 1 # <<<<<<<<<<<<<< + * + * cdef np.npy_int check_begidx3(np.npy_intp length, double* a1, double* a2, double* a3): + */ __pyx_r = (__pyx_v_length - 1); goto __pyx_L0; } + /* "talib/_func.pxi":70 + * return length - 1 + * + * cdef np.npy_int check_begidx2(np.npy_intp length, double* a1, double* a2): # <<<<<<<<<<<<<< + * cdef: + * double val + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "talib/_func.pxi":84 + * return length - 1 + * + * cdef np.npy_int check_begidx3(np.npy_intp length, double* a1, double* a2, double* a3): # <<<<<<<<<<<<<< + * cdef: + * double val + */ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3) { double __pyx_v_val; @@ -12504,52 +13120,171 @@ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx3(npy_intp __pyx_v_length, do npy_intp __pyx_t_1; int __pyx_t_2; + /* "talib/_func.pxi":87 + * cdef: + * double val + * for i from 0 <= i < length: # <<<<<<<<<<<<<< + * val = a1[i] + * if val != val: + */ __pyx_t_1 = __pyx_v_length; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + /* "talib/_func.pxi":88 + * double val + * for i from 0 <= i < length: + * val = a1[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + /* "talib/_func.pxi":89 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":90 + * val = a1[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a2[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":89 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ } + /* "talib/_func.pxi":91 + * if val != val: + * continue + * val = a2[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + /* "talib/_func.pxi":92 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a3[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":93 + * val = a2[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a3[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":92 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a3[i] + */ } + /* "talib/_func.pxi":94 + * if val != val: + * continue + * val = a3[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); + /* "talib/_func.pxi":95 + * continue + * val = a3[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":96 + * val = a3[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * return i + * else: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":95 + * continue + * val = a3[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ } + /* "talib/_func.pxi":97 + * if val != val: + * continue + * return i # <<<<<<<<<<<<<< + * else: + * return length - 1 + */ __pyx_r = __pyx_v_i; goto __pyx_L0; __pyx_L3_continue:; } /*else*/ { + /* "talib/_func.pxi":99 + * return i + * else: + * return length - 1 # <<<<<<<<<<<<<< + * + * cdef np.npy_int check_begidx4(np.npy_intp length, double* a1, double* a2, double* a3, double* a4): + */ __pyx_r = (__pyx_v_length - 1); goto __pyx_L0; } + /* "talib/_func.pxi":84 + * return length - 1 + * + * cdef np.npy_int check_begidx3(np.npy_intp length, double* a1, double* a2, double* a3): # <<<<<<<<<<<<<< + * cdef: + * double val + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "talib/_func.pxi":101 + * return length - 1 + * + * cdef np.npy_int check_begidx4(np.npy_intp length, double* a1, double* a2, double* a3, double* a4): # <<<<<<<<<<<<<< + * cdef: + * double val + */ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp __pyx_v_length, double *__pyx_v_a1, double *__pyx_v_a2, double *__pyx_v_a3, double *__pyx_v_a4) { double __pyx_v_val; @@ -12558,61 +13293,208 @@ static npy_int __pyx_f_5talib_7_ta_lib_check_begidx4(npy_intp __pyx_v_length, do npy_intp __pyx_t_1; int __pyx_t_2; + /* "talib/_func.pxi":104 + * cdef: + * double val + * for i from 0 <= i < length: # <<<<<<<<<<<<<< + * val = a1[i] + * if val != val: + */ __pyx_t_1 = __pyx_v_length; for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_1; __pyx_v_i++) { + /* "talib/_func.pxi":105 + * double val + * for i from 0 <= i < length: + * val = a1[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a1[__pyx_v_i]); + /* "talib/_func.pxi":106 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":107 + * val = a1[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a2[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":106 + * for i from 0 <= i < length: + * val = a1[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a2[i] + */ } + /* "talib/_func.pxi":108 + * if val != val: + * continue + * val = a2[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a2[__pyx_v_i]); + /* "talib/_func.pxi":109 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a3[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":110 + * val = a2[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a3[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":109 + * continue + * val = a2[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a3[i] + */ } + /* "talib/_func.pxi":111 + * if val != val: + * continue + * val = a3[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a3[__pyx_v_i]); + /* "talib/_func.pxi":112 + * continue + * val = a3[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a4[i] + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":113 + * val = a3[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * val = a4[i] + * if val != val: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":112 + * continue + * val = a3[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * val = a4[i] + */ } + /* "talib/_func.pxi":114 + * if val != val: + * continue + * val = a4[i] # <<<<<<<<<<<<<< + * if val != val: + * continue + */ __pyx_v_val = (__pyx_v_a4[__pyx_v_i]); + /* "talib/_func.pxi":115 + * continue + * val = a4[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ __pyx_t_2 = (__pyx_v_val != __pyx_v_val); if (__pyx_t_2) { + /* "talib/_func.pxi":116 + * val = a4[i] + * if val != val: + * continue # <<<<<<<<<<<<<< + * return i + * else: + */ goto __pyx_L3_continue; + /* "talib/_func.pxi":115 + * continue + * val = a4[i] + * if val != val: # <<<<<<<<<<<<<< + * continue + * return i + */ } + /* "talib/_func.pxi":117 + * if val != val: + * continue + * return i # <<<<<<<<<<<<<< + * else: + * return length - 1 + */ __pyx_r = __pyx_v_i; goto __pyx_L0; __pyx_L3_continue:; } /*else*/ { + /* "talib/_func.pxi":119 + * return i + * else: + * return length - 1 # <<<<<<<<<<<<<< + * + * cdef np.ndarray make_double_array(np.npy_intp length, int lookback): + */ __pyx_r = (__pyx_v_length - 1); goto __pyx_L0; } + /* "talib/_func.pxi":101 + * return length - 1 + * + * cdef np.npy_int check_begidx4(np.npy_intp length, double* a1, double* a2, double* a3, double* a4): # <<<<<<<<<<<<<< + * cdef: + * double val + */ /* function exit code */ __pyx_L0:; return __pyx_r; } +/* "talib/_func.pxi":121 + * return length - 1 + * + * cdef np.ndarray make_double_array(np.npy_intp length, int lookback): # <<<<<<<<<<<<<< + * cdef: + * np.ndarray outreal + */ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { PyArrayObject *__pyx_v_outreal = 0; @@ -12621,43 +13503,83 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v PyArrayObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; - npy_intp __pyx_t_5; - int __pyx_t_6; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("make_double_array", 1); - __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, NPY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 125, __pyx_L1_error) + /* "talib/_func.pxi":125 + * np.ndarray outreal + * double* outreal_data + * outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, 0) # <<<<<<<<<<<<<< + * outreal_data = outreal.data + * for i from 0 <= i < min(lookback, length): + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_DOUBLE, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 125, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 126, __pyx_L1_error) - __pyx_v_outreal_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_v_length; - __pyx_t_4 = __pyx_v_lookback; - __pyx_t_6 = (__pyx_t_3 < __pyx_t_4); - if (__pyx_t_6) { - __pyx_t_5 = __pyx_t_3; + /* "talib/_func.pxi":126 + * double* outreal_data + * outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, 0) + * outreal_data = outreal.data # <<<<<<<<<<<<<< + * for i from 0 <= i < min(lookback, length): + * outreal_data[i] = NaN + */ + __pyx_v_outreal_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)); + + /* "talib/_func.pxi":127 + * outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, 0) + * outreal_data = outreal.data + * for i from 0 <= i < min(lookback, length): # <<<<<<<<<<<<<< + * outreal_data[i] = NaN + * return outreal + */ + __pyx_t_2 = __pyx_v_length; + __pyx_t_3 = __pyx_v_lookback; + __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); + if (__pyx_t_5) { + __pyx_t_4 = __pyx_t_2; } else { - __pyx_t_5 = __pyx_t_4; + __pyx_t_4 = __pyx_t_3; } - __pyx_t_3 = __pyx_t_5; - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_2 = __pyx_t_4; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + /* "talib/_func.pxi":128 + * outreal_data = outreal.data + * for i from 0 <= i < min(lookback, length): + * outreal_data[i] = NaN # <<<<<<<<<<<<<< + * return outreal + * + */ (__pyx_v_outreal_data[__pyx_v_i]) = __pyx_v_5talib_7_ta_lib_NaN; } + /* "talib/_func.pxi":129 + * for i from 0 <= i < min(lookback, length): + * outreal_data[i] = NaN + * return outreal # <<<<<<<<<<<<<< + * + * cdef np.ndarray make_int_array(np.npy_intp length, int lookback): + */ __Pyx_XDECREF((PyObject *)__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = __pyx_v_outreal; goto __pyx_L0; + /* "talib/_func.pxi":121 + * return length - 1 + * + * cdef np.ndarray make_double_array(np.npy_intp length, int lookback): # <<<<<<<<<<<<<< + * cdef: + * np.ndarray outreal + */ /* function exit code */ __pyx_L1_error:; @@ -12671,6 +13593,13 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_double_array(npy_intp __pyx_v return __pyx_r; } +/* "talib/_func.pxi":131 + * return outreal + * + * cdef np.ndarray make_int_array(np.npy_intp length, int lookback): # <<<<<<<<<<<<<< + * cdef: + * np.ndarray outinteger + */ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_length, int __pyx_v_lookback) { PyArrayObject *__pyx_v_outinteger = 0; @@ -12679,43 +13608,83 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le PyArrayObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_t_4; - npy_intp __pyx_t_5; - int __pyx_t_6; + npy_intp __pyx_t_2; + int __pyx_t_3; + npy_intp __pyx_t_4; + int __pyx_t_5; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("make_int_array", 1); - __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, NPY_DEFAULT)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 135, __pyx_L1_error) + /* "talib/_func.pxi":135 + * np.ndarray outinteger + * int* outinteger_data + * outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, 0) # <<<<<<<<<<<<<< + * outinteger_data = outinteger.data + * for i from 0 <= i < min(lookback, length): + */ + __pyx_t_1 = ((PyObject *)PyArray_EMPTY(1, (&__pyx_v_length), NPY_INT32, 0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 136, __pyx_L1_error) - __pyx_v_outinteger_data = ((int *)__pyx_t_2); - - __pyx_t_3 = __pyx_v_length; - __pyx_t_4 = __pyx_v_lookback; - __pyx_t_6 = (__pyx_t_3 < __pyx_t_4); - if (__pyx_t_6) { - __pyx_t_5 = __pyx_t_3; + /* "talib/_func.pxi":136 + * int* outinteger_data + * outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, 0) + * outinteger_data = outinteger.data # <<<<<<<<<<<<<< + * for i from 0 <= i < min(lookback, length): + * outinteger_data[i] = 0 + */ + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); + + /* "talib/_func.pxi":137 + * outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, 0) + * outinteger_data = outinteger.data + * for i from 0 <= i < min(lookback, length): # <<<<<<<<<<<<<< + * outinteger_data[i] = 0 + * return outinteger + */ + __pyx_t_2 = __pyx_v_length; + __pyx_t_3 = __pyx_v_lookback; + __pyx_t_5 = (__pyx_t_2 < __pyx_t_3); + if (__pyx_t_5) { + __pyx_t_4 = __pyx_t_2; } else { - __pyx_t_5 = __pyx_t_4; + __pyx_t_4 = __pyx_t_3; } - __pyx_t_3 = __pyx_t_5; - for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + __pyx_t_2 = __pyx_t_4; + for (__pyx_v_i = 0; __pyx_v_i < __pyx_t_2; __pyx_v_i++) { + /* "talib/_func.pxi":138 + * outinteger_data = outinteger.data + * for i from 0 <= i < min(lookback, length): + * outinteger_data[i] = 0 # <<<<<<<<<<<<<< + * return outinteger + * + */ (__pyx_v_outinteger_data[__pyx_v_i]) = 0; } + /* "talib/_func.pxi":139 + * for i from 0 <= i < min(lookback, length): + * outinteger_data[i] = 0 + * return outinteger # <<<<<<<<<<<<<< + * + * + */ __Pyx_XDECREF((PyObject *)__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = __pyx_v_outinteger; goto __pyx_L0; + /* "talib/_func.pxi":131 + * return outreal + * + * cdef np.ndarray make_int_array(np.npy_intp length, int lookback): # <<<<<<<<<<<<<< + * cdef: + * np.ndarray outinteger + */ /* function exit code */ __pyx_L1_error:; @@ -12729,6 +13698,13 @@ static PyArrayObject *__pyx_f_5talib_7_ta_lib_make_int_array(npy_intp __pyx_v_le return __pyx_r; } +/* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_19ACOS(PyObject *__pyx_self, @@ -12844,50 +13820,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACOS(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ACOS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":161 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 161, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 162, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 163, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 163, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":162 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":163 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ACOS_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 163, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":164 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ACOS_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":165 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ACOS_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ACOS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ACOS_Lookback()); + /* "talib/_func.pxi":166 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ACOS_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ACOS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ACOS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 167, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 167, __pyx_L1_error) - __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":167 + * lookback = begidx + lib.TA_ACOS_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ACOS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ACOS", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ACOS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":168 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ACOS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ACOS", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":169 + * retCode = lib.TA_ACOS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ACOS", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -12902,6 +13941,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_18ACOS(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_21AD(PyObject *__pyx_self, @@ -13066,12 +14112,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13081,61 +14122,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AD(CYTHON_UNUSED PyObject *__pyx_sel __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":190 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 190, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":191 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * volume = check_array(volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":192 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":193 + * low = check_array(low) + * close = check_array(close) + * volume = check_array(volume) # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 193, __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)-1))) __PYX_ERR(3, 194, __pyx_L1_error) + /* "talib/_func.pxi":194 + * close = check_array(close) + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + */ + __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(3, 194, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":195 + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AD_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 195, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":196 + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_AD_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":197 + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AD_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AD( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_AD_Lookback()); + /* "talib/_func.pxi":198 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AD_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_AD( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 199, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 199, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 199, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 199, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 199, __pyx_L1_error) - __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":199 + * lookback = begidx + lib.TA_AD_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AD( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AD", retCode) + * return outreal + */ + __pyx_v_retCode = TA_AD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":200 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AD( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AD", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":201 + * retCode = lib.TA_AD( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AD", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -13153,6 +14276,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_20AD(CYTHON_UNUSED PyObject *__pyx_sel return __pyx_r; } +/* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_23ADD(PyObject *__pyx_self, @@ -13285,10 +14415,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13296,47 +14423,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ADD(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":223 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":224 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 224, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 225, __pyx_L1_error) + /* "talib/_func.pxi":225 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 225, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 226, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 226, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 226, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":226 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADD_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 226, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":227 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ADD_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":228 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADD_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADD( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ADD_Lookback()); + /* "talib/_func.pxi":229 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADD_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ADD( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 230, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 230, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 230, __pyx_L1_error) - __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":230 + * lookback = begidx + lib.TA_ADD_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADD( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADD", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ADD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":231 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADD( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADD", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":232 + * retCode = lib.TA_ADD( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADD", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -13352,6 +14551,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_22ADD(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_25ADOSC(PyObject *__pyx_self, @@ -13552,12 +14758,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13567,61 +14768,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADOSC(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":256 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":257 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * volume = check_array(volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":258 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":259 + * low = check_array(low) + * close = check_array(close) + * volume = check_array(volume) # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 259, __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)-1))) __PYX_ERR(3, 260, __pyx_L1_error) + /* "talib/_func.pxi":260 + * close = check_array(close) + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + */ + __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(3, 260, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":261 + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 261, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":262 + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":263 + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ADOSC_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod)); + /* "talib/_func.pxi":264 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ADOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADOSC", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 265, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 265, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 265, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 265, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 265, __pyx_L1_error) - __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":265 + * lookback = begidx + lib.TA_ADOSC_Lookback( fastperiod , slowperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADOSC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ADOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":266 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADOSC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":267 + * retCode = lib.TA_ADOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , fastperiod , slowperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADOSC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -13639,6 +14922,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_24ADOSC(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_27ADX(PyObject *__pyx_self, @@ -13806,11 +15096,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -13819,54 +15105,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":290 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":291 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":292 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 292, __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)-1))) __PYX_ERR(3, 293, __pyx_L1_error) + /* "talib/_func.pxi":293 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 293, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 294, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 294, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 294, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 294, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":294 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 294, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":295 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":296 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ADX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":297 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ADX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 298, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 298, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 298, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 298, __pyx_L1_error) - __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":298 + * lookback = begidx + lib.TA_ADX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ADX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":299 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":300 + * retCode = lib.TA_ADX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -13883,6 +15246,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_26ADX(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_29ADXR(PyObject *__pyx_self, @@ -14050,11 +15420,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADXR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -14063,54 +15429,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADXR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":323 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 323, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":324 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":325 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 325, __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)-1))) __PYX_ERR(3, 326, __pyx_L1_error) + /* "talib/_func.pxi":326 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 326, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":327 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 327, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":328 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":329 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADXR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ADXR_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":330 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ADXR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADXR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 331, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 331, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 331, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 331, __pyx_L1_error) - __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":331 + * lookback = begidx + lib.TA_ADXR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADXR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADXR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ADXR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":332 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ADXR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADXR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":333 + * retCode = lib.TA_ADXR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ADXR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -14127,6 +15570,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_28ADXR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_31APO(PyObject *__pyx_self, @@ -14295,50 +15745,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30APO(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("APO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":358 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 358, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 359, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 360, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 360, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":359 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":360 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 360, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":361 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":362 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_APO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_APO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + /* "talib/_func.pxi":363 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_APO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_APO", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 364, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 364, __pyx_L1_error) - __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":364 + * lookback = begidx + lib.TA_APO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_APO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_APO", retCode) + * return outreal + */ + __pyx_v_retCode = TA_APO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":365 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_APO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_APO", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":366 + * retCode = lib.TA_APO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_APO", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -14353,6 +15866,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_30APO(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_33AROON(PyObject *__pyx_self, @@ -14505,11 +16025,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -14517,48 +16033,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":391 + * np.ndarray outaroondown + * np.ndarray outaroonup + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 391, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":392 + * np.ndarray outaroonup + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 392, __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)-1))) __PYX_ERR(3, 393, __pyx_L1_error) + /* "talib/_func.pxi":393 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 393, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 394, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 394, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 394, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":394 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 394, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":395 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) + * outaroondown = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":396 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outaroondown = make_double_array(length, lookback) + * outaroonup = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_AROON_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":397 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) + * outaroondown = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outaroonup = make_double_array(length, lookback) + * retCode = lib.TA_AROON( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outaroondown.data)+lookback , (outaroonup.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroondown = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":398 + * lookback = begidx + lib.TA_AROON_Lookback( timeperiod ) + * outaroondown = make_double_array(length, lookback) + * outaroonup = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_AROON( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outaroondown.data)+lookback , (outaroonup.data)+lookback ) + * _ta_check_success("TA_AROON", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 398, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outaroonup = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 399, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 399, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroondown); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 399, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroonup); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 399, __pyx_L1_error) - __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":399 + * outaroondown = make_double_array(length, lookback) + * outaroonup = make_double_array(length, lookback) + * retCode = lib.TA_AROON( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outaroondown.data)+lookback , (outaroonup.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AROON", retCode) + * return outaroondown , outaroonup + */ + __pyx_v_retCode = TA_AROON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroondown)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outaroonup)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":400 + * outaroonup = make_double_array(length, lookback) + * retCode = lib.TA_AROON( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outaroondown.data)+lookback , (outaroonup.data)+lookback ) + * _ta_check_success("TA_AROON", retCode) # <<<<<<<<<<<<<< + * return outaroondown , outaroonup + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 400, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":401 + * retCode = lib.TA_AROON( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outaroondown.data)+lookback , (outaroonup.data)+lookback ) + * _ta_check_success("TA_AROON", retCode) + * return outaroondown , outaroonup # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -14572,6 +16159,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -14588,6 +16182,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_32AROON(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_35AROONOSC(PyObject *__pyx_self, @@ -14739,10 +16340,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -14750,47 +16348,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROONOSC(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":424 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":425 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 425, __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)-1))) __PYX_ERR(3, 426, __pyx_L1_error) + /* "talib/_func.pxi":426 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 426, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 427, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 427, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 427, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":427 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 427, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":428 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":429 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AROONOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_AROONOSC_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":430 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_AROONOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AROONOSC", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 431, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 431, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 431, __pyx_L1_error) - __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":431 + * lookback = begidx + lib.TA_AROONOSC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AROONOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AROONOSC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_AROONOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":432 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AROONOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AROONOSC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 432, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":433 + * retCode = lib.TA_AROONOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AROONOSC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -14806,6 +16476,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_34AROONOSC(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":435 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_37ASIN(PyObject *__pyx_self, @@ -14921,50 +16598,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ASIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ASIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":454 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 455, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 456, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 456, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":455 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":456 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ASIN_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 456, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":457 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ASIN_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":458 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ASIN_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ASIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ASIN_Lookback()); + /* "talib/_func.pxi":459 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ASIN_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ASIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ASIN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 460, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 460, __pyx_L1_error) - __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":460 + * lookback = begidx + lib.TA_ASIN_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ASIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ASIN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ASIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":461 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ASIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ASIN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":462 + * retCode = lib.TA_ASIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ASIN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":435 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -14979,6 +16719,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_36ASIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_39ATAN(PyObject *__pyx_self, @@ -15094,50 +16841,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ATAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ATAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":483 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 484, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 485, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 485, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":484 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":485 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATAN_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 485, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":486 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ATAN_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":487 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATAN_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ATAN_Lookback()); + /* "talib/_func.pxi":488 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATAN_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ATAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATAN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 488, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 489, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 489, __pyx_L1_error) - __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":489 + * lookback = begidx + lib.TA_ATAN_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ATAN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ATAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":490 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATAN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":491 + * retCode = lib.TA_ATAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATAN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -15152,6 +16962,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_38ATAN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_41ATR(PyObject *__pyx_self, @@ -15319,11 +17136,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -15332,54 +17145,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATR(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":514 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":515 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":516 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 516, __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)-1))) __PYX_ERR(3, 517, __pyx_L1_error) + /* "talib/_func.pxi":517 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 517, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 518, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 518, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 518, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 518, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":518 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 518, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":519 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":520 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ATR_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":521 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 522, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 522, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 522, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 522, __pyx_L1_error) - __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":522 + * lookback = begidx + lib.TA_ATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ATR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":523 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":524 + * retCode = lib.TA_ATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ATR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -15396,6 +17286,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_40ATR(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_43AVGPRICE(PyObject *__pyx_self, @@ -15560,12 +17457,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -15575,61 +17467,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AVGPRICE(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":545 + * int outnbelement + * np.ndarray outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 545, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":546 + * np.ndarray outreal + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":547 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 547, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":548 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 548, __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)-1))) __PYX_ERR(3, 549, __pyx_L1_error) + /* "talib/_func.pxi":549 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 549, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":550 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGPRICE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 550, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":551 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_AVGPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":552 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGPRICE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGPRICE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_AVGPRICE_Lookback()); + /* "talib/_func.pxi":553 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_AVGPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_AVGPRICE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGPRICE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 554, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 554, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 554, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 554, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 554, __pyx_L1_error) - __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":554 + * lookback = begidx + lib.TA_AVGPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGPRICE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AVGPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_AVGPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":555 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_AVGPRICE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":556 + * retCode = lib.TA_AVGPRICE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_AVGPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -15647,6 +17621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_42AVGPRICE(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_45BBANDS(PyObject *__pyx_self, @@ -15834,59 +17815,125 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44BBANDS(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("BBANDS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":586 + * np.ndarray outrealmiddleband + * np.ndarray outreallowerband + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 587, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 588, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 588, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":587 + * np.ndarray outreallowerband + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":588 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 588, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":589 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + * outrealupperband = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":590 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) # <<<<<<<<<<<<<< + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_BBANDS_Lookback(__pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype)); + /* "talib/_func.pxi":591 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + * outrealupperband = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outrealmiddleband = make_double_array(length, lookback) + * outreallowerband = make_double_array(length, lookback) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 591, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealupperband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":592 + * lookback = begidx + lib.TA_BBANDS_Lookback( timeperiod , nbdevup , nbdevdn , matype ) + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_BBANDS( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 592, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outrealmiddleband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":593 + * outrealupperband = make_double_array(length, lookback) + * outrealmiddleband = make_double_array(length, lookback) + * outreallowerband = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_BBANDS( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_BBANDS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreallowerband = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 594, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealupperband); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 594, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 594, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 594, __pyx_L1_error) - __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":594 + * outrealmiddleband = make_double_array(length, lookback) + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_BBANDS( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband + */ + __pyx_v_retCode = TA_BBANDS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outrealupperband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outrealmiddleband)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreallowerband)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":595 + * outreallowerband = make_double_array(length, lookback) + * retCode = lib.TA_BBANDS( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_BBANDS", retCode) # <<<<<<<<<<<<<< + * return outrealupperband , outrealmiddleband , outreallowerband + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":596 + * retCode = lib.TA_BBANDS( 0 , endidx , (real.data)+begidx , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , (outrealupperband.data)+lookback , (outrealmiddleband.data)+lookback , (outreallowerband.data)+lookback ) + * _ta_check_success("TA_BBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 596, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -15903,6 +17950,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44BBANDS(CYTHON_UNUSED PyObject *__pyx __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -15919,6 +17973,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_44BBANDS(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_47BETA(PyObject *__pyx_self, @@ -16070,10 +18131,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -16081,47 +18139,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46BETA(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":620 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":621 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 621, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 622, __pyx_L1_error) + /* "talib/_func.pxi":622 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 622, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 623, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 623, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 623, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":623 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 623, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":624 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":625 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BETA( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_BETA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":626 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_BETA( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BETA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 626, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 627, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 627, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 627, __pyx_L1_error) - __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":627 + * lookback = begidx + lib.TA_BETA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BETA( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BETA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_BETA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":628 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BETA( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BETA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 628, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":629 + * retCode = lib.TA_BETA( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BETA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -16137,6 +18267,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_46BETA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_49BOP(PyObject *__pyx_self, @@ -16301,12 +18438,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -16316,61 +18448,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BOP(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":650 + * int outnbelement + * np.ndarray outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":651 + * np.ndarray outreal + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":652 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":653 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 653, __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)-1))) __PYX_ERR(3, 654, __pyx_L1_error) + /* "talib/_func.pxi":654 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 654, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":655 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BOP_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 655, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":656 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_BOP_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":657 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BOP_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_BOP_Lookback()); + /* "talib/_func.pxi":658 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_BOP_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_BOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BOP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 659, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 659, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 659, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 659, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 659, __pyx_L1_error) - __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":659 + * lookback = begidx + lib.TA_BOP_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BOP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_BOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":660 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_BOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BOP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":661 + * retCode = lib.TA_BOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_BOP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -16388,6 +18602,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_48BOP(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_51CCI(PyObject *__pyx_self, @@ -16555,11 +18776,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -16568,54 +18785,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50CCI(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":684 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":685 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":686 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 686, __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)-1))) __PYX_ERR(3, 687, __pyx_L1_error) + /* "talib/_func.pxi":687 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 687, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":688 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 688, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":689 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":690 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CCI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CCI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":691 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CCI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CCI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 692, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 692, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 692, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 692, __pyx_L1_error) - __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":692 + * lookback = begidx + lib.TA_CCI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CCI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CCI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CCI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":693 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CCI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CCI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":694 + * retCode = lib.TA_CCI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CCI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -16632,6 +18926,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_50CCI(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_53CDL2CROWS(PyObject *__pyx_self, @@ -16796,12 +19097,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -16811,61 +19107,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52CDL2CROWS(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":715 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":716 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":717 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":718 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 718, __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)-1))) __PYX_ERR(3, 719, __pyx_L1_error) + /* "talib/_func.pxi":719 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 719, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":720 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 720, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":721 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":722 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL2CROWS_Lookback()); + /* "talib/_func.pxi":723 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL2CROWS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 724, __pyx_L1_error) - __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":724 + * lookback = begidx + lib.TA_CDL2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL2CROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":725 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL2CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":726 + * retCode = lib.TA_CDL2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL2CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -16883,6 +19261,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_52CDL2CROWS(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_55CDL3BLACKCROWS(PyObject *__pyx_self, @@ -17047,12 +19432,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -17062,61 +19442,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":747 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":748 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":749 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":750 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 750, __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)-1))) __PYX_ERR(3, 751, __pyx_L1_error) + /* "talib/_func.pxi":751 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 751, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":752 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 752, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":753 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":754 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3BLACKCROWS_Lookback()); + /* "talib/_func.pxi":755 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 756, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":756 + * lookback = begidx + lib.TA_CDL3BLACKCROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3BLACKCROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":757 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":758 + * retCode = lib.TA_CDL3BLACKCROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -17134,6 +19596,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_54CDL3BLACKCROWS(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_57CDL3INSIDE(PyObject *__pyx_self, @@ -17298,12 +19767,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -17313,61 +19777,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":779 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":780 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":781 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":782 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 782, __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)-1))) __PYX_ERR(3, 783, __pyx_L1_error) + /* "talib/_func.pxi":783 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 783, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":784 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 784, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":785 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":786 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3INSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3INSIDE_Lookback()); + /* "talib/_func.pxi":787 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3INSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3INSIDE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 788, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 788, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 788, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 788, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 788, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":788 + * lookback = begidx + lib.TA_CDL3INSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3INSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3INSIDE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3INSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":789 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3INSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3INSIDE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":790 + * retCode = lib.TA_CDL3INSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3INSIDE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -17385,6 +19931,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_56CDL3INSIDE(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_59CDL3LINESTRIKE(PyObject *__pyx_self, @@ -17549,12 +20102,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -17564,61 +20112,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":811 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":812 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":813 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":814 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 814, __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)-1))) __PYX_ERR(3, 815, __pyx_L1_error) + /* "talib/_func.pxi":815 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 815, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":816 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 816, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":817 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":818 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3LINESTRIKE_Lookback()); + /* "talib/_func.pxi":819 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 820, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 820, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 820, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 820, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 820, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":820 + * lookback = begidx + lib.TA_CDL3LINESTRIKE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3LINESTRIKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":821 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":822 + * retCode = lib.TA_CDL3LINESTRIKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -17636,6 +20266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_58CDL3LINESTRIKE(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_61CDL3OUTSIDE(PyObject *__pyx_self, @@ -17800,12 +20437,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -17815,61 +20447,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":843 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":844 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":845 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":846 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 846, __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)-1))) __PYX_ERR(3, 847, __pyx_L1_error) + /* "talib/_func.pxi":847 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 847, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":848 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 848, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":849 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":850 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3OUTSIDE_Lookback()); + /* "talib/_func.pxi":851 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 852, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 852, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 852, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 852, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 852, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":852 + * lookback = begidx + lib.TA_CDL3OUTSIDE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3OUTSIDE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3OUTSIDE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":853 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":854 + * retCode = lib.TA_CDL3OUTSIDE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -17887,6 +20601,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_60CDL3OUTSIDE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_63CDL3STARSINSOUTH(PyObject *__pyx_self, @@ -18051,12 +20772,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -18066,61 +20782,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":875 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":876 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":877 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":878 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 878, __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)-1))) __PYX_ERR(3, 879, __pyx_L1_error) + /* "talib/_func.pxi":879 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 879, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":880 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 880, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":881 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":882 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3STARSINSOUTH_Lookback()); + /* "talib/_func.pxi":883 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 884, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 884, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 884, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 884, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 884, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":884 + * lookback = begidx + lib.TA_CDL3STARSINSOUTH_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3STARSINSOUTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":885 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":886 + * retCode = lib.TA_CDL3STARSINSOUTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -18138,6 +20936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_62CDL3STARSINSOUTH(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_65CDL3WHITESOLDIERS(PyObject *__pyx_self, @@ -18302,12 +21107,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -18317,61 +21117,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":907 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":908 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":909 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":910 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 910, __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)-1))) __PYX_ERR(3, 911, __pyx_L1_error) + /* "talib/_func.pxi":911 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 911, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":912 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 912, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":913 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":914 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDL3WHITESOLDIERS_Lookback()); + /* "talib/_func.pxi":915 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 916, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 916, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 916, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 916, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 916, __pyx_L1_error) - __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":916 + * lookback = begidx + lib.TA_CDL3WHITESOLDIERS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDL3WHITESOLDIERS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":917 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":918 + * retCode = lib.TA_CDL3WHITESOLDIERS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -18389,6 +21271,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_64CDL3WHITESOLDIERS(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_67CDLABANDONEDBABY(PyObject *__pyx_self, @@ -18572,12 +21461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -18587,61 +21471,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":941 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":942 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 942, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":943 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 943, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":944 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 944, __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)-1))) __PYX_ERR(3, 945, __pyx_L1_error) + /* "talib/_func.pxi":945 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 945, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":946 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 946, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":947 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":948 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLABANDONEDBABY_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":949 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 950, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 950, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 950, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 950, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 950, __pyx_L1_error) - __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":950 + * lookback = begidx + lib.TA_CDLABANDONEDBABY_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLABANDONEDBABY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":951 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 951, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":952 + * retCode = lib.TA_CDLABANDONEDBABY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* function exit code */ __pyx_L1_error:; @@ -18659,6 +21625,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_66CDLABANDONEDBABY(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_69CDLADVANCEBLOCK(PyObject *__pyx_self, @@ -18823,12 +21796,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -18838,61 +21806,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":973 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":974 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 974, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":975 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 975, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":976 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 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_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 977, __pyx_L1_error) + /* "talib/_func.pxi":977 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 977, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":978 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 978, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":979 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":980 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLADVANCEBLOCK_Lookback()); + /* "talib/_func.pxi":981 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 982, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 982, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 982, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 982, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 982, __pyx_L1_error) - __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":982 + * lookback = begidx + lib.TA_CDLADVANCEBLOCK_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLADVANCEBLOCK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":983 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 983, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":984 + * retCode = lib.TA_CDLADVANCEBLOCK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -18910,6 +21960,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_68CDLADVANCEBLOCK(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_71CDLBELTHOLD(PyObject *__pyx_self, @@ -19074,12 +22131,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -19089,61 +22141,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1005 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1006 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1006, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1007 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1007, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1008 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1008, __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)-1))) __PYX_ERR(3, 1009, __pyx_L1_error) + /* "talib/_func.pxi":1009 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1009, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1010 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1010, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1011 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1012 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBELTHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBELTHOLD_Lookback()); + /* "talib/_func.pxi":1013 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLBELTHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1014, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1014, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1014, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1014, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1014, __pyx_L1_error) - __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1014 + * lookback = begidx + lib.TA_CDLBELTHOLD_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBELTHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLBELTHOLD", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLBELTHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1015 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBELTHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1015, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1016 + * retCode = lib.TA_CDLBELTHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -19161,6 +22295,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_70CDLBELTHOLD(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_73CDLBREAKAWAY(PyObject *__pyx_self, @@ -19325,12 +22466,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -19340,61 +22476,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1037 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1038 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1039 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1040 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1040, __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)-1))) __PYX_ERR(3, 1041, __pyx_L1_error) + /* "talib/_func.pxi":1041 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1041, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1042 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1042, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1043 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1044 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLBREAKAWAY_Lookback()); + /* "talib/_func.pxi":1045 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1046, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1046, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1046, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1046, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1046, __pyx_L1_error) - __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1046 + * lookback = begidx + lib.TA_CDLBREAKAWAY_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLBREAKAWAY", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLBREAKAWAY(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1047 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1048 + * retCode = lib.TA_CDLBREAKAWAY( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -19412,6 +22630,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_72CDLBREAKAWAY(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU(PyObject *__pyx_self, @@ -19576,12 +22801,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -19591,61 +22811,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1069 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1069, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1070 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1070, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1071 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1072 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1072, __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)-1))) __PYX_ERR(3, 1073, __pyx_L1_error) + /* "talib/_func.pxi":1073 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1073, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1074 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1074, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1075 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1076 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCLOSINGMARUBOZU_Lookback()); + /* "talib/_func.pxi":1077 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1077, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1078, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1078, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1078, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1078, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1078, __pyx_L1_error) - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1078 + * lookback = begidx + lib.TA_CDLCLOSINGMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1079 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1080 + * retCode = lib.TA_CDLCLOSINGMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -19663,6 +22965,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_74CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_77CDLCONCEALBABYSWALL(PyObject *__pyx_self, @@ -19827,12 +23136,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -19842,61 +23146,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1101 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1102 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1102, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1103 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1103, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1104 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1104, __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)-1))) __PYX_ERR(3, 1105, __pyx_L1_error) + /* "talib/_func.pxi":1105 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1105, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1106 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1106, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1107 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1108 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCONCEALBABYSWALL_Lookback()); + /* "talib/_func.pxi":1109 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1109, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1110, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1110, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1110, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1110, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1110, __pyx_L1_error) - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1110 + * lookback = begidx + lib.TA_CDLCONCEALBABYSWALL_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1111 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1111, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1112 + * retCode = lib.TA_CDLCONCEALBABYSWALL( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -19914,6 +23300,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_76CDLCONCEALBABYSWALL(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_79CDLCOUNTERATTACK(PyObject *__pyx_self, @@ -20078,12 +23471,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -20093,61 +23481,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1133 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1133, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1134 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1134, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1135 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1136 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1136, __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)-1))) __PYX_ERR(3, 1137, __pyx_L1_error) + /* "talib/_func.pxi":1137 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1137, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1138 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1138, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1139 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1140 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLCOUNTERATTACK_Lookback()); + /* "talib/_func.pxi":1141 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1141, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1142, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1142, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1142, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1142, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1142, __pyx_L1_error) - __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1142 + * lookback = begidx + lib.TA_CDLCOUNTERATTACK_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLCOUNTERATTACK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1143 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1144 + * retCode = lib.TA_CDLCOUNTERATTACK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -20165,6 +23635,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_78CDLCOUNTERATTACK(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_81CDLDARKCLOUDCOVER(PyObject *__pyx_self, @@ -20348,12 +23825,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -20363,61 +23835,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1167 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1168 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1169 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1170 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1170, __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)-1))) __PYX_ERR(3, 1171, __pyx_L1_error) + /* "talib/_func.pxi":1171 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1171, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1172 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1172, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1173 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1174 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDARKCLOUDCOVER_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":1175 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1175, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1176, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1176, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1176, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1176, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1176, __pyx_L1_error) - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1176 + * lookback = begidx + lib.TA_CDLDARKCLOUDCOVER_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1177 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1178 + * retCode = lib.TA_CDLDARKCLOUDCOVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ /* function exit code */ __pyx_L1_error:; @@ -20435,6 +23989,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_80CDLDARKCLOUDCOVER(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_83CDLDOJI(PyObject *__pyx_self, @@ -20599,12 +24160,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -20614,61 +24170,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLDOJI(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1199 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1200 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1201 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1202 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1202, __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)-1))) __PYX_ERR(3, 1203, __pyx_L1_error) + /* "talib/_func.pxi":1203 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1203, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1204 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1204, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1205 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1206 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJI_Lookback()); + /* "talib/_func.pxi":1207 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1207, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1208, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1208, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1208, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1208, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1208, __pyx_L1_error) - __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1208 + * lookback = begidx + lib.TA_CDLDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1209 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1210 + * retCode = lib.TA_CDLDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -20686,6 +24324,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_82CDLDOJI(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_85CDLDOJISTAR(PyObject *__pyx_self, @@ -20850,12 +24495,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -20865,61 +24505,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1231 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1231, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1232 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1232, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1233 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1234 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1234, __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)-1))) __PYX_ERR(3, 1235, __pyx_L1_error) + /* "talib/_func.pxi":1235 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1235, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1236 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1236, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1237 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1238 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDOJISTAR_Lookback()); + /* "talib/_func.pxi":1239 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1239, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1240, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1240, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1240, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1240, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1240, __pyx_L1_error) - __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1240 + * lookback = begidx + lib.TA_CDLDOJISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1241 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1242 + * retCode = lib.TA_CDLDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -20937,6 +24659,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_84CDLDOJISTAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_87CDLDRAGONFLYDOJI(PyObject *__pyx_self, @@ -21101,12 +24830,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -21116,61 +24840,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1263 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1263, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1264 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1264, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1265 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1266 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1266, __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)-1))) __PYX_ERR(3, 1267, __pyx_L1_error) + /* "talib/_func.pxi":1267 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1267, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1268 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1268, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1269 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1270 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLDRAGONFLYDOJI_Lookback()); + /* "talib/_func.pxi":1271 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1272, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1272, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1272, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1272, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1272, __pyx_L1_error) - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1272 + * lookback = begidx + lib.TA_CDLDRAGONFLYDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1273 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1274 + * retCode = lib.TA_CDLDRAGONFLYDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -21188,6 +24994,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_86CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_89CDLENGULFING(PyObject *__pyx_self, @@ -21352,12 +25165,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -21367,61 +25175,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLENGULFING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1295 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1295, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1296 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1297 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1298 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1298, __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)-1))) __PYX_ERR(3, 1299, __pyx_L1_error) + /* "talib/_func.pxi":1299 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1299, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1300 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1300, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1301 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1302 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLENGULFING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLENGULFING_Lookback()); + /* "talib/_func.pxi":1303 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLENGULFING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLENGULFING", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1304, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1304, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1304, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1304, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1304, __pyx_L1_error) - __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1304 + * lookback = begidx + lib.TA_CDLENGULFING_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLENGULFING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLENGULFING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLENGULFING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1305 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLENGULFING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLENGULFING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1306 + * retCode = lib.TA_CDLENGULFING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLENGULFING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -21439,6 +25329,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_88CDLENGULFING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_91CDLEVENINGDOJISTAR(PyObject *__pyx_self, @@ -21622,12 +25519,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -21637,61 +25529,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1329 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1330 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1331 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1332 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1332, __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)-1))) __PYX_ERR(3, 1333, __pyx_L1_error) + /* "talib/_func.pxi":1333 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1333, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1334 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1334, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1335 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1336 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGDOJISTAR_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":1337 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1338, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1338, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1338, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1338, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1338, __pyx_L1_error) - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1338 + * lookback = begidx + lib.TA_CDLEVENINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1339 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1340 + * retCode = lib.TA_CDLEVENINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* function exit code */ __pyx_L1_error:; @@ -21709,6 +25683,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_90CDLEVENINGDOJISTAR(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_93CDLEVENINGSTAR(PyObject *__pyx_self, @@ -21892,12 +25873,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -21907,61 +25883,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1363 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1364 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1365 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1365, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1366 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 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)-1))) __PYX_ERR(3, 1367, __pyx_L1_error) + /* "talib/_func.pxi":1367 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1367, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1368 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1368, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1369 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1370 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLEVENINGSTAR_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":1371 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1372, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1372, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1372, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1372, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1372, __pyx_L1_error) - __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1372 + * lookback = begidx + lib.TA_CDLEVENINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLEVENINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1373 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1373, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1374 + * retCode = lib.TA_CDLEVENINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* function exit code */ __pyx_L1_error:; @@ -21979,6 +26037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_92CDLEVENINGSTAR(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, @@ -22143,12 +26208,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22158,61 +26218,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1395 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1396 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1396, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1397 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1397, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1398 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1398, __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)-1))) __PYX_ERR(3, 1399, __pyx_L1_error) + /* "talib/_func.pxi":1399 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1399, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1400 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1400, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1401 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1402 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGAPSIDESIDEWHITE_Lookback()); + /* "talib/_func.pxi":1403 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1404, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1404, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1404, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1404, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1404, __pyx_L1_error) - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1404 + * lookback = begidx + lib.TA_CDLGAPSIDESIDEWHITE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1405 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1405, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1406 + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -22230,6 +26372,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_94CDLGAPSIDESIDEWHITE(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_97CDLGRAVESTONEDOJI(PyObject *__pyx_self, @@ -22394,12 +26543,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22409,61 +26553,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1427 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1428 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1429 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1429, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1430 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1430, __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)-1))) __PYX_ERR(3, 1431, __pyx_L1_error) + /* "talib/_func.pxi":1431 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1431, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1432 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1432, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1433 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1434 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLGRAVESTONEDOJI_Lookback()); + /* "talib/_func.pxi":1435 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1436, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1436, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1436, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1436, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1436, __pyx_L1_error) - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1436 + * lookback = begidx + lib.TA_CDLGRAVESTONEDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1437 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1437, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1438 + * retCode = lib.TA_CDLGRAVESTONEDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -22481,6 +26707,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_96CDLGRAVESTONEDOJI(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_99CDLHAMMER(PyObject *__pyx_self, @@ -22645,12 +26878,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLHAMMER(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22660,61 +26888,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLHAMMER(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1459 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1460 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1460, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1461 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1462 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1462, __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)-1))) __PYX_ERR(3, 1463, __pyx_L1_error) + /* "talib/_func.pxi":1463 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1463, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1464 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1464, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1465 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1466 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHAMMER_Lookback()); + /* "talib/_func.pxi":1467 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHAMMER", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1468, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1468, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1468, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1468, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1468, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1468 + * lookback = begidx + lib.TA_CDLHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHAMMER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1469 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHAMMER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1469, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1470 + * retCode = lib.TA_CDLHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHAMMER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -22732,6 +27042,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_98CDLHAMMER(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_101CDLHANGINGMAN(PyObject *__pyx_self, @@ -22896,12 +27213,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -22911,61 +27223,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1491 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1492 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1492, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1493 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1493, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1494 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1494, __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)-1))) __PYX_ERR(3, 1495, __pyx_L1_error) + /* "talib/_func.pxi":1495 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1495, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1496 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1496, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1497 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1498 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHANGINGMAN_Lookback()); + /* "talib/_func.pxi":1499 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1500, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1500, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1500, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1500, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1500, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1500 + * lookback = begidx + lib.TA_CDLHANGINGMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHANGINGMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1501 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1502 + * retCode = lib.TA_CDLHANGINGMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -22983,6 +27377,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_100CDLHANGINGMAN(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_103CDLHARAMI(PyObject *__pyx_self, @@ -23147,12 +27548,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23162,61 +27558,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHARAMI(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1523 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1524 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1524, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1525 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1525, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1526 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1526, __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)-1))) __PYX_ERR(3, 1527, __pyx_L1_error) + /* "talib/_func.pxi":1527 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1527, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1528 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1528, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1529 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1530 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMI_Lookback()); + /* "talib/_func.pxi":1531 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHARAMI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1532, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1532, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1532, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1532, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1532, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1532 + * lookback = begidx + lib.TA_CDLHARAMI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHARAMI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHARAMI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1533 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1534 + * retCode = lib.TA_CDLHARAMI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -23234,6 +27712,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_102CDLHARAMI(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_105CDLHARAMICROSS(PyObject *__pyx_self, @@ -23398,12 +27883,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23413,61 +27893,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1555 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1556 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1556, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1557 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1557, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1558 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1558, __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)-1))) __PYX_ERR(3, 1559, __pyx_L1_error) + /* "talib/_func.pxi":1559 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1559, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1560 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1560, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1561 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1562 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHARAMICROSS_Lookback()); + /* "talib/_func.pxi":1563 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1564, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1564, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1564, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1564, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1564, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1564 + * lookback = begidx + lib.TA_CDLHARAMICROSS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHARAMICROSS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1565 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1566 + * retCode = lib.TA_CDLHARAMICROSS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -23485,6 +28047,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_104CDLHARAMICROSS(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_107CDLHIGHWAVE(PyObject *__pyx_self, @@ -23649,12 +28218,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23664,61 +28228,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1587 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1588 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1588, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1589 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1589, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1590 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1590, __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)-1))) __PYX_ERR(3, 1591, __pyx_L1_error) + /* "talib/_func.pxi":1591 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1591, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1592 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1592, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1593 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1594 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIGHWAVE_Lookback()); + /* "talib/_func.pxi":1595 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1596, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1596, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1596, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1596, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1596, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1596 + * lookback = begidx + lib.TA_CDLHIGHWAVE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIGHWAVE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1597 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1598 + * retCode = lib.TA_CDLHIGHWAVE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -23736,6 +28382,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_106CDLHIGHWAVE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_109CDLHIKKAKE(PyObject *__pyx_self, @@ -23900,12 +28553,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -23915,61 +28563,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1619 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1620 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1620, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1621 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1621, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1622 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1622, __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)-1))) __PYX_ERR(3, 1623, __pyx_L1_error) + /* "talib/_func.pxi":1623 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1623, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1624 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1624, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1625 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1626 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKE_Lookback()); + /* "talib/_func.pxi":1627 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIKKAKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1628, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1628, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1628, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1628, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1628, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1628 + * lookback = begidx + lib.TA_CDLHIKKAKE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIKKAKE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIKKAKE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1629 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1629, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1630 + * retCode = lib.TA_CDLHIKKAKE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -23987,6 +28717,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_108CDLHIKKAKE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_111CDLHIKKAKEMOD(PyObject *__pyx_self, @@ -24151,12 +28888,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24166,61 +28898,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1651 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1652 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1652, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1653 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1653, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1654 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1654, __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)-1))) __PYX_ERR(3, 1655, __pyx_L1_error) + /* "talib/_func.pxi":1655 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1655, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1656 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1656, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1657 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1658 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHIKKAKEMOD_Lookback()); + /* "talib/_func.pxi":1659 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1660, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1660, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1660, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1660, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1660, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1660 + * lookback = begidx + lib.TA_CDLHIKKAKEMOD_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIKKAKEMOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1661 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1662 + * retCode = lib.TA_CDLHIKKAKEMOD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -24238,6 +29052,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_110CDLHIKKAKEMOD(CYTHON_UNUSED PyObjec return __pyx_r; } +/* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_113CDLHOMINGPIGEON(PyObject *__pyx_self, @@ -24402,12 +29223,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24417,61 +29233,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1683 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1684 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1685 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1686 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1686, __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)-1))) __PYX_ERR(3, 1687, __pyx_L1_error) + /* "talib/_func.pxi":1687 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1687, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1688 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1688, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1689 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1690 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLHOMINGPIGEON_Lookback()); + /* "talib/_func.pxi":1691 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1691, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1692, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1692, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1692, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1692, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1692, __pyx_L1_error) - __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1692 + * lookback = begidx + lib.TA_CDLHOMINGPIGEON_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHOMINGPIGEON(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1693 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1693, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1694 + * retCode = lib.TA_CDLHOMINGPIGEON( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -24489,6 +29387,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_112CDLHOMINGPIGEON(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_115CDLIDENTICAL3CROWS(PyObject *__pyx_self, @@ -24653,12 +29558,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24668,61 +29568,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1715 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1715, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1716 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1717 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1718 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1718, __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)-1))) __PYX_ERR(3, 1719, __pyx_L1_error) + /* "talib/_func.pxi":1719 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1719, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1720 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1720, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1721 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1722 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLIDENTICAL3CROWS_Lookback()); + /* "talib/_func.pxi":1723 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1723, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1724, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1724, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1724, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1724, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1724, __pyx_L1_error) - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1724 + * lookback = begidx + lib.TA_CDLIDENTICAL3CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1725 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1726 + * retCode = lib.TA_CDLIDENTICAL3CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -24740,6 +29722,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_114CDLIDENTICAL3CROWS(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_117CDLINNECK(PyObject *__pyx_self, @@ -24904,12 +29893,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -24919,61 +29903,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLINNECK(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1747 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1748 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1749 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1749, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1750 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1750, __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)-1))) __PYX_ERR(3, 1751, __pyx_L1_error) + /* "talib/_func.pxi":1751 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1751, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1752 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINNECK_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1752, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1753 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLINNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1754 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINNECK_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINNECK_Lookback()); + /* "talib/_func.pxi":1755 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLINNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINNECK", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1756, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1756, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1756, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1756, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1756, __pyx_L1_error) - __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1756 + * lookback = begidx + lib.TA_CDLINNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLINNECK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLINNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1757 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINNECK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1758 + * retCode = lib.TA_CDLINNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINNECK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -24991,6 +30057,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_116CDLINNECK(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_119CDLINVERTEDHAMMER(PyObject *__pyx_self, @@ -25155,12 +30228,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25170,61 +30238,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1779 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1780 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1780, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1781 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1782 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1782, __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)-1))) __PYX_ERR(3, 1783, __pyx_L1_error) + /* "talib/_func.pxi":1783 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1783, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1784 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1784, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1785 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1786 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLINVERTEDHAMMER_Lookback()); + /* "talib/_func.pxi":1787 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1787, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1788, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1788, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1788, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1788, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1788, __pyx_L1_error) - __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1788 + * lookback = begidx + lib.TA_CDLINVERTEDHAMMER_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLINVERTEDHAMMER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1789 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1790 + * retCode = lib.TA_CDLINVERTEDHAMMER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -25242,6 +30392,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_118CDLINVERTEDHAMMER(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_121CDLKICKING(PyObject *__pyx_self, @@ -25406,12 +30563,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25421,61 +30573,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLKICKING(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1811 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1812 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1812, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1813 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1814 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1814, __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)-1))) __PYX_ERR(3, 1815, __pyx_L1_error) + /* "talib/_func.pxi":1815 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1815, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1816 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKING_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1816, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1817 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLKICKING_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1818 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKING_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKING_Lookback()); + /* "talib/_func.pxi":1819 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKING_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLKICKING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKING", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1820, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1820, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1820, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1820, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1820, __pyx_L1_error) - __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1820 + * lookback = begidx + lib.TA_CDLKICKING_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLKICKING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLKICKING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1821 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1821, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1822 + * retCode = lib.TA_CDLKICKING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -25493,6 +30727,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_120CDLKICKING(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_123CDLKICKINGBYLENGTH(PyObject *__pyx_self, @@ -25657,12 +30898,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25672,61 +30908,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1843 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1843, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1844 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1844, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1845 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1845, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1846 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1846, __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)-1))) __PYX_ERR(3, 1847, __pyx_L1_error) + /* "talib/_func.pxi":1847 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1847, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1848 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1848, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1849 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1850 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLKICKINGBYLENGTH_Lookback()); + /* "talib/_func.pxi":1851 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1851, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1852, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1852, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1852, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1852, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1852, __pyx_L1_error) - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1852 + * lookback = begidx + lib.TA_CDLKICKINGBYLENGTH_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1853 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1853, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1854 + * retCode = lib.TA_CDLKICKINGBYLENGTH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -25744,6 +31062,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_122CDLKICKINGBYLENGTH(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_125CDLLADDERBOTTOM(PyObject *__pyx_self, @@ -25908,12 +31233,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -25923,61 +31243,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1875 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1875, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1876 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1876, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1877 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1877, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1878 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1878, __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)-1))) __PYX_ERR(3, 1879, __pyx_L1_error) + /* "talib/_func.pxi":1879 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1879, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1880 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1880, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1881 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1882 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLADDERBOTTOM_Lookback()); + /* "talib/_func.pxi":1883 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1883, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1884, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1884, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1884, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1884, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1884, __pyx_L1_error) - __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1884 + * lookback = begidx + lib.TA_CDLLADDERBOTTOM_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLADDERBOTTOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1885 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1885, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1886 + * retCode = lib.TA_CDLLADDERBOTTOM( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -25995,6 +31397,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_124CDLLADDERBOTTOM(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI(PyObject *__pyx_self, @@ -26159,12 +31568,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26174,61 +31578,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1907 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1907, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1908 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1908, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1909 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1909, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1910 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1910, __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)-1))) __PYX_ERR(3, 1911, __pyx_L1_error) + /* "talib/_func.pxi":1911 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1911, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1912 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1912, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1913 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1914 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLEGGEDDOJI_Lookback()); + /* "talib/_func.pxi":1915 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1915, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1916, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1916, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1916, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1916, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1916, __pyx_L1_error) - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1916 + * lookback = begidx + lib.TA_CDLLONGLEGGEDDOJI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1917 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1917, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1918 + * retCode = lib.TA_CDLLONGLEGGEDDOJI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -26246,6 +31732,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_126CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_129CDLLONGLINE(PyObject *__pyx_self, @@ -26410,12 +31903,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26425,61 +31913,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1939 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1940 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1940, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1941 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1941, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1942 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1942, __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)-1))) __PYX_ERR(3, 1943, __pyx_L1_error) + /* "talib/_func.pxi":1943 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1943, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1944 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1944, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1945 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1946 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLLONGLINE_Lookback()); + /* "talib/_func.pxi":1947 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLONGLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLINE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1947, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1948, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1948, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1948, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1948, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1948, __pyx_L1_error) - __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1948 + * lookback = begidx + lib.TA_CDLLONGLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLONGLINE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLONGLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1949 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLLONGLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLINE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1949, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1950 + * retCode = lib.TA_CDLLONGLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLLONGLINE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -26497,6 +32067,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_128CDLLONGLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_131CDLMARUBOZU(PyObject *__pyx_self, @@ -26661,12 +32238,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26676,61 +32248,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":1971 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1972 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1972, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1973 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1973, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":1974 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1974, __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)-1))) __PYX_ERR(3, 1975, __pyx_L1_error) + /* "talib/_func.pxi":1975 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 1975, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":1976 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 1976, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":1977 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":1978 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMARUBOZU_Lookback()); + /* "talib/_func.pxi":1979 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1979, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1980, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1980, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1980, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1980, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 1980, __pyx_L1_error) - __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":1980 + * lookback = begidx + lib.TA_CDLMARUBOZU_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMARUBOZU", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMARUBOZU(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":1981 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 1981, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":1982 + * retCode = lib.TA_CDLMARUBOZU( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -26748,6 +32402,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_130CDLMARUBOZU(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_133CDLMATCHINGLOW(PyObject *__pyx_self, @@ -26912,12 +32573,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -26927,61 +32583,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2003 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2004 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2004, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2005 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2005, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2006 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2006, __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)-1))) __PYX_ERR(3, 2007, __pyx_L1_error) + /* "talib/_func.pxi":2007 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2007, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2008 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2008, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2009 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2010 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATCHINGLOW_Lookback()); + /* "talib/_func.pxi":2011 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2011, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2012, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2012, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2012, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2012, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2012, __pyx_L1_error) - __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2012 + * lookback = begidx + lib.TA_CDLMATCHINGLOW_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMATCHINGLOW(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2013 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2013, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2014 + * retCode = lib.TA_CDLMATCHINGLOW( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -26999,6 +32737,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_132CDLMATCHINGLOW(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_135CDLMATHOLD(PyObject *__pyx_self, @@ -27182,12 +32927,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27197,61 +32937,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2037 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2037, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2038 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2038, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2039 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2039, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2040 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2040, __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)-1))) __PYX_ERR(3, 2041, __pyx_L1_error) + /* "talib/_func.pxi":2041 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2041, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2042 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2042, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2043 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2044 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMATHOLD_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":2045 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMATHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATHOLD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2046, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2046, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2046, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2046, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2046, __pyx_L1_error) - __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2046 + * lookback = begidx + lib.TA_CDLMATHOLD_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMATHOLD", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMATHOLD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2047 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMATHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATHOLD", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2047, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2048 + * retCode = lib.TA_CDLMATHOLD( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMATHOLD", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ /* function exit code */ __pyx_L1_error:; @@ -27269,6 +33091,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_134CDLMATHOLD(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_137CDLMORNINGDOJISTAR(PyObject *__pyx_self, @@ -27452,12 +33281,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27467,61 +33291,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2071 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2071, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2072 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2072, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2073 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2073, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2074 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2074, __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)-1))) __PYX_ERR(3, 2075, __pyx_L1_error) + /* "talib/_func.pxi":2075 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2075, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2076 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2076, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2077 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2078 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGDOJISTAR_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":2079 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2079, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2080, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2080, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2080, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2080, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2080, __pyx_L1_error) - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2080 + * lookback = begidx + lib.TA_CDLMORNINGDOJISTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2081 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2082 + * retCode = lib.TA_CDLMORNINGDOJISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* function exit code */ __pyx_L1_error:; @@ -27539,6 +33445,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_136CDLMORNINGDOJISTAR(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_139CDLMORNINGSTAR(PyObject *__pyx_self, @@ -27722,12 +33635,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27737,61 +33645,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2105 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2105, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2106 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2106, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2107 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2107, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2108 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2108, __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)-1))) __PYX_ERR(3, 2109, __pyx_L1_error) + /* "talib/_func.pxi":2109 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2109, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2110 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2110, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2111 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2112 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLMORNINGSTAR_Lookback(__pyx_v_penetration)); + /* "talib/_func.pxi":2113 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2114, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2114, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2114, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2114, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2114, __pyx_L1_error) - __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2114 + * lookback = begidx + lib.TA_CDLMORNINGSTAR_Lookback( penetration ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMORNINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2115 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2115, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2116 + * retCode = lib.TA_CDLMORNINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , penetration , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ /* function exit code */ __pyx_L1_error:; @@ -27809,6 +33799,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_138CDLMORNINGSTAR(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_141CDLONNECK(PyObject *__pyx_self, @@ -27973,12 +33970,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -27988,61 +33980,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLONNECK(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2137 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2137, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2138 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2139 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2140 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2140, __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)-1))) __PYX_ERR(3, 2141, __pyx_L1_error) + /* "talib/_func.pxi":2141 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2141, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2142 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLONNECK_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2142, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2143 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLONNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2144 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLONNECK_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLONNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLONNECK_Lookback()); + /* "talib/_func.pxi":2145 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLONNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLONNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLONNECK", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2146, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2146, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2146, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2146, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2146, __pyx_L1_error) - __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2146 + * lookback = begidx + lib.TA_CDLONNECK_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLONNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLONNECK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLONNECK(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2147 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLONNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLONNECK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2148 + * retCode = lib.TA_CDLONNECK( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLONNECK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -28060,6 +34134,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_140CDLONNECK(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_143CDLPIERCING(PyObject *__pyx_self, @@ -28224,12 +34305,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28239,61 +34315,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLPIERCING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2169 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2170 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2170, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2171 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2171, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2172 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 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)-1))) __PYX_ERR(3, 2173, __pyx_L1_error) + /* "talib/_func.pxi":2173 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2173, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2174 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2174, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2175 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2176 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLPIERCING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLPIERCING_Lookback()); + /* "talib/_func.pxi":2177 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLPIERCING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLPIERCING", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2178, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2178, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2178, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2178, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2178, __pyx_L1_error) - __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2178 + * lookback = begidx + lib.TA_CDLPIERCING_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLPIERCING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLPIERCING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLPIERCING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2179 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLPIERCING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLPIERCING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2180 + * retCode = lib.TA_CDLPIERCING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLPIERCING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -28311,6 +34469,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_142CDLPIERCING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_145CDLRICKSHAWMAN(PyObject *__pyx_self, @@ -28475,12 +34640,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28490,61 +34650,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2201 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2202 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2202, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2203 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2204 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2204, __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)-1))) __PYX_ERR(3, 2205, __pyx_L1_error) + /* "talib/_func.pxi":2205 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2205, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2206 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2206, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2207 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2208 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRICKSHAWMAN_Lookback()); + /* "talib/_func.pxi":2209 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2210, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2210, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2210, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2210, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2210, __pyx_L1_error) - __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2210 + * lookback = begidx + lib.TA_CDLRICKSHAWMAN_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLRICKSHAWMAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2211 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2212 + * retCode = lib.TA_CDLRICKSHAWMAN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -28562,6 +34804,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_144CDLRICKSHAWMAN(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_147CDLRISEFALL3METHODS(PyObject *__pyx_self, @@ -28726,12 +34975,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28741,61 +34985,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2233 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2233, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2234 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2235 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2235, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2236 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2236, __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)-1))) __PYX_ERR(3, 2237, __pyx_L1_error) + /* "talib/_func.pxi":2237 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2237, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2238 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2238, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2239 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2240 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLRISEFALL3METHODS_Lookback()); + /* "talib/_func.pxi":2241 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2241, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2242, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2242, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2242, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2242, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2242, __pyx_L1_error) - __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2242 + * lookback = begidx + lib.TA_CDLRISEFALL3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLRISEFALL3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2243 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2243, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2244 + * retCode = lib.TA_CDLRISEFALL3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -28813,6 +35139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_146CDLRISEFALL3METHODS(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_149CDLSEPARATINGLINES(PyObject *__pyx_self, @@ -28977,12 +35310,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -28992,61 +35320,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2265 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2266 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2266, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2267 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2268 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2268, __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)-1))) __PYX_ERR(3, 2269, __pyx_L1_error) + /* "talib/_func.pxi":2269 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2269, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2270 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2270, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2271 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2272 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSEPARATINGLINES_Lookback()); + /* "talib/_func.pxi":2273 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2273, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2274, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2274, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2274, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2274, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2274, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2274 + * lookback = begidx + lib.TA_CDLSEPARATINGLINES_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSEPARATINGLINES(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2275 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2275, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2276 + * retCode = lib.TA_CDLSEPARATINGLINES( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -29064,6 +35474,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_148CDLSEPARATINGLINES(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_151CDLSHOOTINGSTAR(PyObject *__pyx_self, @@ -29228,12 +35645,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -29243,61 +35655,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2297 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2298 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2299 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2299, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2300 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2300, __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)-1))) __PYX_ERR(3, 2301, __pyx_L1_error) + /* "talib/_func.pxi":2301 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2301, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2302 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2302, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2303 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2304 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHOOTINGSTAR_Lookback()); + /* "talib/_func.pxi":2305 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2306, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2306, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2306, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2306, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2306, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2306 + * lookback = begidx + lib.TA_CDLSHOOTINGSTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSHOOTINGSTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2307 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2307, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2308 + * retCode = lib.TA_CDLSHOOTINGSTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -29315,6 +35809,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_150CDLSHOOTINGSTAR(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_153CDLSHORTLINE(PyObject *__pyx_self, @@ -29479,12 +35980,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -29494,61 +35990,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2329 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2330 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2330, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2331 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2331, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2332 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2332, __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)-1))) __PYX_ERR(3, 2333, __pyx_L1_error) + /* "talib/_func.pxi":2333 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2333, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2334 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2334, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2335 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2336 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHORTLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSHORTLINE_Lookback()); + /* "talib/_func.pxi":2337 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSHORTLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2338, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2338, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2338, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2338, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2338, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2338 + * lookback = begidx + lib.TA_CDLSHORTLINE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHORTLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSHORTLINE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSHORTLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2339 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSHORTLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2339, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2340 + * retCode = lib.TA_CDLSHORTLINE( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -29566,6 +36144,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_152CDLSHORTLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_155CDLSPINNINGTOP(PyObject *__pyx_self, @@ -29730,12 +36315,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -29745,61 +36325,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(CYTHON_UNUSED PyObje __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2361 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2362 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2363 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2363, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2364 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2364, __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)-1))) __PYX_ERR(3, 2365, __pyx_L1_error) + /* "talib/_func.pxi":2365 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2365, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2366 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2366, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2367 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2368 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSPINNINGTOP_Lookback()); + /* "talib/_func.pxi":2369 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2369, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2370, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2370, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2370, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2370, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2370, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2370 + * lookback = begidx + lib.TA_CDLSPINNINGTOP_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSPINNINGTOP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2371 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2371, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2372 + * retCode = lib.TA_CDLSPINNINGTOP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -29817,6 +36479,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_154CDLSPINNINGTOP(CYTHON_UNUSED PyObje return __pyx_r; } +/* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_157CDLSTALLEDPATTERN(PyObject *__pyx_self, @@ -29981,12 +36650,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -29996,61 +36660,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(CYTHON_UNUSED PyO __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2393 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2393, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2394 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2395 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2396 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2396, __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)-1))) __PYX_ERR(3, 2397, __pyx_L1_error) + /* "talib/_func.pxi":2397 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2397, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2398 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2398, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2399 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2400 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTALLEDPATTERN_Lookback()); + /* "talib/_func.pxi":2401 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2401, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2402, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2402, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2402, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2402, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2402, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2402 + * lookback = begidx + lib.TA_CDLSTALLEDPATTERN_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSTALLEDPATTERN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2403 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2403, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2404 + * retCode = lib.TA_CDLSTALLEDPATTERN( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -30068,6 +36814,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_156CDLSTALLEDPATTERN(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_159CDLSTICKSANDWICH(PyObject *__pyx_self, @@ -30232,12 +36985,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -30247,61 +36995,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(CYTHON_UNUSED PyOb __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2425 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2425, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2426 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2427 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2428 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2428, __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)-1))) __PYX_ERR(3, 2429, __pyx_L1_error) + /* "talib/_func.pxi":2429 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2429, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2430 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2430, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2431 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2432 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLSTICKSANDWICH_Lookback()); + /* "talib/_func.pxi":2433 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2433, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2434, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2434, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2434, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2434, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2434, __pyx_L1_error) - __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2434 + * lookback = begidx + lib.TA_CDLSTICKSANDWICH_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSTICKSANDWICH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2435 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2435, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2436 + * retCode = lib.TA_CDLSTICKSANDWICH( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -30319,6 +37149,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_158CDLSTICKSANDWICH(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_161CDLTAKURI(PyObject *__pyx_self, @@ -30483,12 +37320,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -30498,61 +37330,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLTAKURI(CYTHON_UNUSED PyObject *_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2457 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2458 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2459 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2460 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2460, __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)-1))) __PYX_ERR(3, 2461, __pyx_L1_error) + /* "talib/_func.pxi":2461 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2461, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2462 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2462, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2463 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2464 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTAKURI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTAKURI_Lookback()); + /* "talib/_func.pxi":2465 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTAKURI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTAKURI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2466, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2466, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2466, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2466, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2466, __pyx_L1_error) - __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2466 + * lookback = begidx + lib.TA_CDLTAKURI_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTAKURI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTAKURI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTAKURI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2467 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTAKURI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTAKURI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2468 + * retCode = lib.TA_CDLTAKURI( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTAKURI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -30570,6 +37484,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_160CDLTAKURI(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_163CDLTASUKIGAP(PyObject *__pyx_self, @@ -30734,12 +37655,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -30749,61 +37665,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2489 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2489, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2490 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2491 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2492 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2492, __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)-1))) __PYX_ERR(3, 2493, __pyx_L1_error) + /* "talib/_func.pxi":2493 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2493, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2494 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2494, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2495 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2496 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTASUKIGAP_Lookback()); + /* "talib/_func.pxi":2497 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2498, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2498, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2498, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2498, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2498, __pyx_L1_error) - __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2498 + * lookback = begidx + lib.TA_CDLTASUKIGAP_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTASUKIGAP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2499 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2500 + * retCode = lib.TA_CDLTASUKIGAP( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -30821,6 +37819,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_162CDLTASUKIGAP(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_165CDLTHRUSTING(PyObject *__pyx_self, @@ -30985,12 +37990,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -31000,61 +38000,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(CYTHON_UNUSED PyObject __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2521 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2522 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2522, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2523 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2523, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2524 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2524, __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)-1))) __PYX_ERR(3, 2525, __pyx_L1_error) + /* "talib/_func.pxi":2525 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2525, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2526 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2526, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2527 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2528 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTHRUSTING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTHRUSTING_Lookback()); + /* "talib/_func.pxi":2529 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTHRUSTING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2529, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2530, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2530, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2530, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2530, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2530, __pyx_L1_error) - __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2530 + * lookback = begidx + lib.TA_CDLTHRUSTING_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTHRUSTING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTHRUSTING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTHRUSTING(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2531 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTHRUSTING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2532 + * retCode = lib.TA_CDLTHRUSTING( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -31072,6 +38154,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_164CDLTHRUSTING(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_167CDLTRISTAR(PyObject *__pyx_self, @@ -31236,12 +38325,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -31251,61 +38335,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(CYTHON_UNUSED PyObject * __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2553 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2553, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2554 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2554, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2555 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2555, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2556 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2556, __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)-1))) __PYX_ERR(3, 2557, __pyx_L1_error) + /* "talib/_func.pxi":2557 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2557, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2558 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2558, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2559 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2560 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTRISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLTRISTAR_Lookback()); + /* "talib/_func.pxi":2561 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTRISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTRISTAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2561, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2562, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2562, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2562, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2562, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2562, __pyx_L1_error) - __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2562 + * lookback = begidx + lib.TA_CDLTRISTAR_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTRISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTRISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTRISTAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2563 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLTRISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTRISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2563, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2564 + * retCode = lib.TA_CDLTRISTAR( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLTRISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -31323,6 +38489,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_166CDLTRISTAR(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_169CDLUNIQUE3RIVER(PyObject *__pyx_self, @@ -31487,12 +38660,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -31502,61 +38670,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2585 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2586 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2587 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2587, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2588 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2588, __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)-1))) __PYX_ERR(3, 2589, __pyx_L1_error) + /* "talib/_func.pxi":2589 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2589, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2590 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2590, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2591 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2592 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUNIQUE3RIVER_Lookback()); + /* "talib/_func.pxi":2593 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2593, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2594, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2594, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2594, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2594, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2594, __pyx_L1_error) - __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2594 + * lookback = begidx + lib.TA_CDLUNIQUE3RIVER_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLUNIQUE3RIVER(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2595 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2595, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2596 + * retCode = lib.TA_CDLUNIQUE3RIVER( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -31574,6 +38824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_168CDLUNIQUE3RIVER(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, @@ -31738,12 +38995,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -31753,61 +39005,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2617 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2617, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2618 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2618, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2619 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2619, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2620 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2620, __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)-1))) __PYX_ERR(3, 2621, __pyx_L1_error) + /* "talib/_func.pxi":2621 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2621, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2622 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2622, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2623 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2624 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLUPSIDEGAP2CROWS_Lookback()); + /* "talib/_func.pxi":2625 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2625, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2626, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2626, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2626, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2626, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2626, __pyx_L1_error) - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2626 + * lookback = begidx + lib.TA_CDLUPSIDEGAP2CROWS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2627 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2627, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2628 + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -31825,6 +39159,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_170CDLUPSIDEGAP2CROWS(CYTHON_UNUSED Py return __pyx_r; } +/* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS(PyObject *__pyx_self, @@ -31989,12 +39330,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -32004,61 +39340,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(CYTHON_UNUSED P __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2649 + * int outnbelement + * np.ndarray outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * high = check_array(high) + * low = check_array(low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2650 + * np.ndarray outinteger + * open = check_array(open) + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2650, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2651 + * open = check_array(open) + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length4(open, high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2651, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2652 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2652, __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)-1))) __PYX_ERR(3, 2653, __pyx_L1_error) + /* "talib/_func.pxi":2653 + * low = check_array(low) + * close = check_array(close) + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(3, 2653, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":2654 + * close = check_array(close) + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2654, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2655 + * length = check_length4(open, high, low, close) + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2656 + * begidx = check_begidx4(length, (open.data), (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CDLXSIDEGAP3METHODS_Lookback()); + /* "talib/_func.pxi":2657 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2657, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2658, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2658, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2658, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2658, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2658, __pyx_L1_error) - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2658 + * lookback = begidx + lib.TA_CDLXSIDEGAP3METHODS_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2659 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2660 + * retCode = lib.TA_CDLXSIDEGAP3METHODS( 0 , endidx , (open.data)+begidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -32076,6 +39494,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_172CDLXSIDEGAP3METHODS(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_175CEIL(PyObject *__pyx_self, @@ -32191,50 +39616,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CEIL(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CEIL", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2681 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2681, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2682, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2683, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2683, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2682 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2683 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CEIL_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2683, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2684 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CEIL_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2685 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CEIL_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CEIL( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CEIL_Lookback()); + /* "talib/_func.pxi":2686 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CEIL_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CEIL( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CEIL", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2686, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2687, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2687, __pyx_L1_error) - __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2687 + * lookback = begidx + lib.TA_CEIL_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CEIL( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CEIL", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CEIL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2688 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CEIL( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CEIL", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2688, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2689 + * retCode = lib.TA_CEIL( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CEIL", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -32249,6 +39737,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_174CEIL(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_177CMO(PyObject *__pyx_self, @@ -32383,50 +39878,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CMO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("CMO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2712 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2712, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2713, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2714, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2714, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2713 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2714 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2714, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2715 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2716 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CMO( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CMO_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":2717 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CMO( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CMO", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2718, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2718, __pyx_L1_error) - __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2718 + * lookback = begidx + lib.TA_CMO_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CMO( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CMO", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CMO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2719 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CMO( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CMO", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2720 + * retCode = lib.TA_CMO( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CMO", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -32441,6 +39999,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_176CMO(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_179CORREL(PyObject *__pyx_self, @@ -32592,10 +40157,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CORREL(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -32603,47 +40165,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CORREL(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":2744 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2745 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2745, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2746, __pyx_L1_error) + /* "talib/_func.pxi":2746 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 2746, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2747, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2747, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2747, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":2747 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2747, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2748 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2749 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CORREL( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_CORREL_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":2750 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_CORREL( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CORREL", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2751, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2751, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2751, __pyx_L1_error) - __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2751 + * lookback = begidx + lib.TA_CORREL_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CORREL( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CORREL", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CORREL(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2752 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_CORREL( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CORREL", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2753 + * retCode = lib.TA_CORREL( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_CORREL", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -32659,6 +40293,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_178CORREL(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_181COS(PyObject *__pyx_self, @@ -32774,50 +40415,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180COS(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("COS", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2774 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2775, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2776, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2776, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2775 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2776 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COS_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2776, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2777 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_COS_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2778 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COS_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_COS_Lookback()); + /* "talib/_func.pxi":2779 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COS_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_COS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COS", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2780, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2780, __pyx_L1_error) - __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2780 + * lookback = begidx + lib.TA_COS_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_COS", retCode) + * return outreal + */ + __pyx_v_retCode = TA_COS(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2781 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COS", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2782 + * retCode = lib.TA_COS( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COS", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -32832,6 +40536,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_180COS(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_183COSH(PyObject *__pyx_self, @@ -32947,50 +40658,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182COSH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("COSH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2803 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2803, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2804, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2805, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2805, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2804 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2805 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COSH_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2805, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2806 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_COSH_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2807 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COSH_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COSH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_COSH_Lookback()); + /* "talib/_func.pxi":2808 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_COSH_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_COSH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COSH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2808, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2809, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2809, __pyx_L1_error) - __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2809 + * lookback = begidx + lib.TA_COSH_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COSH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_COSH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_COSH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2810 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_COSH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COSH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2811 + * retCode = lib.TA_COSH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_COSH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -33005,6 +40779,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_182COSH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_185DEMA(PyObject *__pyx_self, @@ -33139,50 +40920,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184DEMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("DEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2834 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2834, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2835, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2836, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2836, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2835 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2836 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2836, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2837 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2838 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_DEMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":2839 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_DEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DEMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2839, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2840, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2840, __pyx_L1_error) - __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2840 + * lookback = begidx + lib.TA_DEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DEMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2841 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DEMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2841, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2842 + * retCode = lib.TA_DEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DEMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -33197,6 +41041,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_184DEMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_187DIV(PyObject *__pyx_self, @@ -33329,10 +41180,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -33340,47 +41188,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186DIV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":2864 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2865 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2865, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 2866, __pyx_L1_error) + /* "talib/_func.pxi":2866 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 2866, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2867, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2867, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2867, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":2867 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DIV_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2867, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2868 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_DIV_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2869 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DIV_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DIV( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_DIV_Lookback()); + /* "talib/_func.pxi":2870 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DIV_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_DIV( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DIV", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2870, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2871, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2871, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2871, __pyx_L1_error) - __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2871 + * lookback = begidx + lib.TA_DIV_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DIV( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DIV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DIV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2872 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DIV( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DIV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2872, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2873 + * retCode = lib.TA_DIV( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DIV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -33396,6 +41316,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_186DIV(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_189DX(PyObject *__pyx_self, @@ -33563,11 +41490,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -33576,54 +41499,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DX(CYTHON_UNUSED PyObject *__pyx_se __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":2896 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2897 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2897, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":2898 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2898, __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)-1))) __PYX_ERR(3, 2899, __pyx_L1_error) + /* "talib/_func.pxi":2899 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 2899, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2900, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2900, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2900, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2900, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":2900 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DX_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2900, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":2901 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_DX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2902 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_DX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":2903 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_DX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_DX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2903, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2904, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2904, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2904, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2904, __pyx_L1_error) - __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2904 + * lookback = begidx + lib.TA_DX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2905 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_DX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2905, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2906 + * retCode = lib.TA_DX( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_DX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -33640,6 +41640,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_188DX(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_191EMA(PyObject *__pyx_self, @@ -33774,50 +41781,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190EMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("EMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2929 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2930, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2931, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2931, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2930 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2931 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2931, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2932 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2933 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_EMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":2934 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_EMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2934, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2935, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2935, __pyx_L1_error) - __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2935 + * lookback = begidx + lib.TA_EMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_EMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_EMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2936 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2936, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2937 + * retCode = lib.TA_EMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -33832,6 +41902,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_190EMA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_193EXP(PyObject *__pyx_self, @@ -33947,50 +42024,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192EXP(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("EXP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2958 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2958, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2959, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2960, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2960, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2959 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2960 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EXP_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2960, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2961 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_EXP_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2962 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EXP_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EXP( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_EXP_Lookback()); + /* "talib/_func.pxi":2963 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_EXP_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_EXP( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EXP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2964, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2964, __pyx_L1_error) - __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2964 + * lookback = begidx + lib.TA_EXP_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EXP( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_EXP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_EXP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2965 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_EXP( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EXP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2965, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2966 + * retCode = lib.TA_EXP( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_EXP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -34005,6 +42145,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_192EXP(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_195FLOOR(PyObject *__pyx_self, @@ -34120,50 +42267,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194FLOOR(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("FLOOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":2987 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2987, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2988, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2989, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2989, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":2988 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":2989 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_FLOOR_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 2989, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":2990 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_FLOOR_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":2991 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_FLOOR_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_FLOOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_FLOOR_Lookback()); + /* "talib/_func.pxi":2992 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_FLOOR_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_FLOOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_FLOOR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2992, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2993, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 2993, __pyx_L1_error) - __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":2993 + * lookback = begidx + lib.TA_FLOOR_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_FLOOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_FLOOR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_FLOOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":2994 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_FLOOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_FLOOR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 2994, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":2995 + * retCode = lib.TA_FLOOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_FLOOR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -34178,6 +42388,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_194FLOOR(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_197HT_DCPERIOD(PyObject *__pyx_self, @@ -34293,50 +42510,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196HT_DCPERIOD(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_DCPERIOD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3016 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3016, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3017, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3018, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3018, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3017 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3018 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3018, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3019 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3020 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPERIOD( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPERIOD_Lookback()); + /* "talib/_func.pxi":3021 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_DCPERIOD( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3021, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3022, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3022, __pyx_L1_error) - __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3022 + * lookback = begidx + lib.TA_HT_DCPERIOD_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPERIOD( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_DCPERIOD", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_DCPERIOD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3023 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPERIOD( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3023, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3024 + * retCode = lib.TA_HT_DCPERIOD( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -34351,6 +42631,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_196HT_DCPERIOD(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_199HT_DCPHASE(PyObject *__pyx_self, @@ -34466,50 +42753,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198HT_DCPHASE(CYTHON_UNUSED PyObject * PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_DCPHASE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3045 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3045, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3046, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3047, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3047, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3046 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3047 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3047, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3048 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3049 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPHASE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_DCPHASE_Lookback()); + /* "talib/_func.pxi":3050 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_DCPHASE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPHASE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3050, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3051, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3051, __pyx_L1_error) - __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3051 + * lookback = begidx + lib.TA_HT_DCPHASE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPHASE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_DCPHASE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_DCPHASE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3052 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_DCPHASE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPHASE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3052, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3053 + * retCode = lib.TA_HT_DCPHASE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_DCPHASE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -34524,6 +42874,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_198HT_DCPHASE(CYTHON_UNUSED PyObject * return __pyx_r; } +/* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_201HT_PHASOR(PyObject *__pyx_self, @@ -34640,52 +42997,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_PHASOR(CYTHON_UNUSED PyObject *_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_PHASOR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3076 + * np.ndarray outinphase + * np.ndarray outquadrature + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3076, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3077, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3078, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3078, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3077 + * np.ndarray outquadrature + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3078 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3078, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3079 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) + * outinphase = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3080 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) # <<<<<<<<<<<<<< + * outinphase = make_double_array(length, lookback) + * outquadrature = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_PHASOR_Lookback()); + /* "talib/_func.pxi":3081 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) + * outinphase = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outquadrature = make_double_array(length, lookback) + * retCode = lib.TA_HT_PHASOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinphase.data)+lookback , (outquadrature.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3081, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinphase = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3082 + * lookback = begidx + lib.TA_HT_PHASOR_Lookback( ) + * outinphase = make_double_array(length, lookback) + * outquadrature = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_PHASOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinphase.data)+lookback , (outquadrature.data)+lookback ) + * _ta_check_success("TA_HT_PHASOR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3082, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outquadrature = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3083, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinphase); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3083, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outquadrature); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3083, __pyx_L1_error) - __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3083 + * outinphase = make_double_array(length, lookback) + * outquadrature = make_double_array(length, lookback) + * retCode = lib.TA_HT_PHASOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinphase.data)+lookback , (outquadrature.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_PHASOR", retCode) + * return outinphase , outquadrature + */ + __pyx_v_retCode = TA_HT_PHASOR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinphase)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outquadrature)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3084 + * outquadrature = make_double_array(length, lookback) + * retCode = lib.TA_HT_PHASOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinphase.data)+lookback , (outquadrature.data)+lookback ) + * _ta_check_success("TA_HT_PHASOR", retCode) # <<<<<<<<<<<<<< + * return outinphase , outquadrature + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3085 + * retCode = lib.TA_HT_PHASOR( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinphase.data)+lookback , (outquadrature.data)+lookback ) + * _ta_check_success("TA_HT_PHASOR", retCode) + * return outinphase , outquadrature # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3085, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -34699,6 +43117,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_PHASOR(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -34714,6 +43139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_200HT_PHASOR(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_203HT_SINE(PyObject *__pyx_self, @@ -34830,52 +43262,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_SINE(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_SINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3108 + * np.ndarray outsine + * np.ndarray outleadsine + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3108, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3109, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3110, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3110, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3109 + * np.ndarray outleadsine + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3110 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_SINE_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3110, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3111 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_SINE_Lookback( ) + * outsine = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3112 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_SINE_Lookback( ) # <<<<<<<<<<<<<< + * outsine = make_double_array(length, lookback) + * outleadsine = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_SINE_Lookback()); + /* "talib/_func.pxi":3113 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_SINE_Lookback( ) + * outsine = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outleadsine = make_double_array(length, lookback) + * retCode = lib.TA_HT_SINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outsine.data)+lookback , (outleadsine.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3113, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3114 + * lookback = begidx + lib.TA_HT_SINE_Lookback( ) + * outsine = make_double_array(length, lookback) + * outleadsine = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_SINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outsine.data)+lookback , (outleadsine.data)+lookback ) + * _ta_check_success("TA_HT_SINE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3114, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outleadsine = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3115, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsine); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3115, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outleadsine); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3115, __pyx_L1_error) - __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3115 + * outsine = make_double_array(length, lookback) + * outleadsine = make_double_array(length, lookback) + * retCode = lib.TA_HT_SINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outsine.data)+lookback , (outleadsine.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_SINE", retCode) + * return outsine , outleadsine + */ + __pyx_v_retCode = TA_HT_SINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outsine)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outleadsine)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3116 + * outleadsine = make_double_array(length, lookback) + * retCode = lib.TA_HT_SINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outsine.data)+lookback , (outleadsine.data)+lookback ) + * _ta_check_success("TA_HT_SINE", retCode) # <<<<<<<<<<<<<< + * return outsine , outleadsine + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3116, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3117 + * retCode = lib.TA_HT_SINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outsine.data)+lookback , (outleadsine.data)+lookback ) + * _ta_check_success("TA_HT_SINE", retCode) + * return outsine , outleadsine # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -34889,6 +43382,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_SINE(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -34904,6 +43404,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_202HT_SINE(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_205HT_TRENDLINE(PyObject *__pyx_self, @@ -35019,50 +43526,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_TRENDLINE(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_TRENDLINE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3138 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3139, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3140, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3140, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3139 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3140 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3140, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3141 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3142 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_TRENDLINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDLINE_Lookback()); + /* "talib/_func.pxi":3143 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_TRENDLINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3143, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3144, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3144, __pyx_L1_error) - __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3144 + * lookback = begidx + lib.TA_HT_TRENDLINE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_TRENDLINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_TRENDLINE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_TRENDLINE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3145 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_HT_TRENDLINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3145, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3146 + * retCode = lib.TA_HT_TRENDLINE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -35077,6 +43647,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_204HT_TRENDLINE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_207HT_TRENDMODE(PyObject *__pyx_self, @@ -35192,50 +43769,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_TRENDMODE(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("HT_TRENDMODE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3167 + * int outnbelement + * np.ndarray outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3168, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3169, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3169, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3168 + * np.ndarray outinteger + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3169 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3169, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3170 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3171 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_HT_TRENDMODE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_HT_TRENDMODE_Lookback()); + /* "talib/_func.pxi":3172 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_TRENDMODE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3172, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3173, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3173, __pyx_L1_error) - __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3173 + * lookback = begidx + lib.TA_HT_TRENDMODE_Lookback( ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_HT_TRENDMODE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_TRENDMODE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_HT_TRENDMODE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3174 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_HT_TRENDMODE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3174, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3175 + * retCode = lib.TA_HT_TRENDMODE( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -35250,6 +43890,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_206HT_TRENDMODE(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_209KAMA(PyObject *__pyx_self, @@ -35384,50 +44031,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208KAMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("KAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3198 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3199, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3200, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3200, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3199 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3200 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3200, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3201 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3202 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_KAMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3203 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_KAMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3203, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3204, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3204, __pyx_L1_error) - __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3204 + * lookback = begidx + lib.TA_KAMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_KAMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_KAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3205 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_KAMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3205, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3206 + * retCode = lib.TA_KAMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_KAMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -35442,6 +44152,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_208KAMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_211LINEARREG(PyObject *__pyx_self, @@ -35576,50 +44293,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210LINEARREG(CYTHON_UNUSED PyObject *_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3229 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3229, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3230, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3231, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3231, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3230 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3231 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3231, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3232 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3233 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3234 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3234, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3235, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3235, __pyx_L1_error) - __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3235 + * lookback = begidx + lib.TA_LINEARREG_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3236 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3237 + * retCode = lib.TA_LINEARREG( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -35634,6 +44414,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_210LINEARREG(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_213LINEARREG_ANGLE(PyObject *__pyx_self, @@ -35768,50 +44555,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212LINEARREG_ANGLE(CYTHON_UNUSED PyObj PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_ANGLE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3260 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3260, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3261, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3262, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3262, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3261 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3262 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3262, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3263 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3264 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_ANGLE_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3265 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3265, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3266, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3266, __pyx_L1_error) - __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3266 + * lookback = begidx + lib.TA_LINEARREG_ANGLE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_ANGLE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3267 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3267, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3268 + * retCode = lib.TA_LINEARREG_ANGLE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -35826,6 +44676,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_212LINEARREG_ANGLE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_215LINEARREG_INTERCEPT(PyObject *__pyx_self, @@ -35960,50 +44817,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214LINEARREG_INTERCEPT(CYTHON_UNUSED P PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_INTERCEPT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3291 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3291, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3292, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3293, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3293, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3292 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3293 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3293, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3294 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3295 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_INTERCEPT_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3296 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3296, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3297, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3297, __pyx_L1_error) - __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3297 + * lookback = begidx + lib.TA_LINEARREG_INTERCEPT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_INTERCEPT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3298 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3298, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3299 + * retCode = lib.TA_LINEARREG_INTERCEPT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -36018,6 +44938,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_214LINEARREG_INTERCEPT(CYTHON_UNUSED P return __pyx_r; } +/* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_217LINEARREG_SLOPE(PyObject *__pyx_self, @@ -36152,50 +45079,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG_SLOPE(CYTHON_UNUSED PyObj PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LINEARREG_SLOPE", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3322 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3323, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3324, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3324, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3323 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3324 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3324, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3325 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3326 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LINEARREG_SLOPE_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3327 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3328, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3328, __pyx_L1_error) - __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3328 + * lookback = begidx + lib.TA_LINEARREG_SLOPE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_SLOPE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3329 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3329, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3330 + * retCode = lib.TA_LINEARREG_SLOPE( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -36210,6 +45200,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_216LINEARREG_SLOPE(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_219LN(PyObject *__pyx_self, @@ -36325,50 +45322,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LN(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3351 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3352, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3352 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3353 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LN_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3353, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3354 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LN_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3355 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LN_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LN_Lookback()); + /* "talib/_func.pxi":3356 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LN_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3356, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3357, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3357, __pyx_L1_error) - __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3357 + * lookback = begidx + lib.TA_LN_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3358 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LN, __pyx_v_retCode, 0); 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; + /* "talib/_func.pxi":3359 + * retCode = lib.TA_LN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -36383,6 +45443,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_218LN(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_221LOG10(PyObject *__pyx_self, @@ -36498,50 +45565,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LOG10(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("LOG10", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3380 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3381, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3382, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3382, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3381 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3382 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LOG10_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3382, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3383 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_LOG10_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3384 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LOG10_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LOG10( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_LOG10_Lookback()); + /* "talib/_func.pxi":3385 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_LOG10_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_LOG10( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LOG10", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3385, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3386, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3386, __pyx_L1_error) - __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3386 + * lookback = begidx + lib.TA_LOG10_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LOG10( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LOG10", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LOG10(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3387 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_LOG10( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LOG10", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3388 + * retCode = lib.TA_LOG10( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_LOG10", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -36556,6 +45686,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_220LOG10(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_223MA(PyObject *__pyx_self, @@ -36707,50 +45844,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222MA(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3412 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3412, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3413, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3414, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3414, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3413 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3414 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3414, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3415 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3416 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MA( 0 , endidx , (real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MA_Lookback(__pyx_v_timeperiod, __pyx_v_matype)); + /* "talib/_func.pxi":3417 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MA( 0 , endidx , (real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3417, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3418, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3418, __pyx_L1_error) - __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3418 + * lookback = begidx + lib.TA_MA_Lookback( timeperiod , matype ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MA( 0 , endidx , (real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3419 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MA( 0 , endidx , (real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3419, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3420 + * retCode = lib.TA_MA( 0 , endidx , (real.data)+begidx , timeperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -36765,6 +45965,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_222MA(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_225MACD(PyObject *__pyx_self, @@ -36935,59 +46142,125 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224MACD(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACD", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3449 + * np.ndarray outmacdsignal + * np.ndarray outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3450, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3451, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3451, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3450 + * np.ndarray outmacdhist + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3451 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACD_Lookback( fastperiod , slowperiod , signalperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3451, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3452 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MACD_Lookback( fastperiod , slowperiod , signalperiod ) + * outmacd = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3453 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACD_Lookback( fastperiod , slowperiod , signalperiod ) # <<<<<<<<<<<<<< + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MACD_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod)); + /* "talib/_func.pxi":3454 + * endidx = length - begidx - 1 + * 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) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3455 + * 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) + * retCode = lib.TA_MACD( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3455, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3456 + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MACD( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACD", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3457, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3457, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3457, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3457, __pyx_L1_error) - __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3457 + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACD( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACD", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACD(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3458 + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACD( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACD", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3459 + * retCode = lib.TA_MACD( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACD", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3459, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37004,6 +46277,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224MACD(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -37020,6 +46300,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_224MACD(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_227MACDEXT(PyObject *__pyx_self, @@ -37241,59 +46528,125 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226MACDEXT(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACDEXT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3491 + * np.ndarray outmacdsignal + * np.ndarray outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3492, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3493, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3493, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3492 + * np.ndarray outmacdhist + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3493 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACDEXT_Lookback( fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3493, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3494 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MACDEXT_Lookback( fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype ) + * outmacd = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3495 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACDEXT_Lookback( fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype ) # <<<<<<<<<<<<<< + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, 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)); + /* "talib/_func.pxi":3496 + * endidx = length - begidx - 1 + * 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) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3497 + * 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) + * retCode = lib.TA_MACDEXT( 0 , endidx , (real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3498 + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MACDEXT( 0 , endidx , (real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDEXT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3499, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3499, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3499, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3499, __pyx_L1_error) - __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __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_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3499 + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACDEXT( 0 , endidx , (real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACDEXT", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACDEXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3500 + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACDEXT( 0 , endidx , (real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDEXT", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3501 + * retCode = lib.TA_MACDEXT( 0 , endidx , (real.data)+begidx , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDEXT", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37310,6 +46663,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226MACDEXT(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -37326,6 +46686,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_226MACDEXT(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_229MACDFIX(PyObject *__pyx_self, @@ -37462,59 +46829,125 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MACDFIX(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MACDFIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3528 + * np.ndarray outmacdsignal + * np.ndarray outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3528, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3529, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3530, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3530, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3529 + * np.ndarray outmacdhist + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3530 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACDFIX_Lookback( signalperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3530, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3531 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MACDFIX_Lookback( signalperiod ) + * outmacd = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3532 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MACDFIX_Lookback( signalperiod ) # <<<<<<<<<<<<<< + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MACDFIX_Lookback(__pyx_v_signalperiod)); + /* "talib/_func.pxi":3533 + * endidx = length - begidx - 1 + * 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) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3533, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3534 + * 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) + * retCode = lib.TA_MACDFIX( 0 , endidx , (real.data)+begidx , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3534, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdsignal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3535 + * outmacd = make_double_array(length, lookback) + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MACDFIX( 0 , endidx , (real.data)+begidx , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDFIX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3535, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmacdhist = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3536, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3536, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3536, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3536, __pyx_L1_error) - __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3536 + * outmacdsignal = make_double_array(length, lookback) + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACDFIX( 0 , endidx , (real.data)+begidx , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACDFIX", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACDFIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacd)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdsignal)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmacdhist)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3537 + * outmacdhist = make_double_array(length, lookback) + * retCode = lib.TA_MACDFIX( 0 , endidx , (real.data)+begidx , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDFIX", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3537, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3538 + * retCode = lib.TA_MACDFIX( 0 , endidx , (real.data)+begidx , signalperiod , &outbegidx , &outnbelement , (outmacd.data)+lookback , (outmacdsignal.data)+lookback , (outmacdhist.data)+lookback ) + * _ta_check_success("TA_MACDFIX", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3538, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37531,6 +46964,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MACDFIX(CYTHON_UNUSED PyObject *__p __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -37547,6 +46987,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_228MACDFIX(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_231MAMA(PyObject *__pyx_self, @@ -37699,52 +47146,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MAMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MAMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3564 + * np.ndarray outmama + * np.ndarray outfama + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3564, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3565, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3566, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3566, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3565 + * np.ndarray outfama + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3566 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3566, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3567 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) + * outmama = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3568 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) # <<<<<<<<<<<<<< + * outmama = make_double_array(length, lookback) + * outfama = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MAMA_Lookback(__pyx_v_fastlimit, __pyx_v_slowlimit)); + /* "talib/_func.pxi":3569 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) + * outmama = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outfama = make_double_array(length, lookback) + * retCode = lib.TA_MAMA( 0 , endidx , (real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , (outmama.data)+lookback , (outfama.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3569, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3570 + * lookback = begidx + lib.TA_MAMA_Lookback( fastlimit , slowlimit ) + * outmama = make_double_array(length, lookback) + * outfama = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MAMA( 0 , endidx , (real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , (outmama.data)+lookback , (outfama.data)+lookback ) + * _ta_check_success("TA_MAMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfama = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3571, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmama); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3571, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfama); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3571, __pyx_L1_error) - __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3571 + * outmama = make_double_array(length, lookback) + * outfama = make_double_array(length, lookback) + * retCode = lib.TA_MAMA( 0 , endidx , (real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , (outmama.data)+lookback , (outfama.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAMA", retCode) + * return outmama , outfama + */ + __pyx_v_retCode = TA_MAMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmama)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfama)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3572 + * outfama = make_double_array(length, lookback) + * retCode = lib.TA_MAMA( 0 , endidx , (real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , (outmama.data)+lookback , (outfama.data)+lookback ) + * _ta_check_success("TA_MAMA", retCode) # <<<<<<<<<<<<<< + * return outmama , outfama + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3573 + * retCode = lib.TA_MAMA( 0 , endidx , (real.data)+begidx , fastlimit , slowlimit , &outbegidx , &outnbelement , (outmama.data)+lookback , (outfama.data)+lookback ) + * _ta_check_success("TA_MAMA", retCode) + * return outmama , outfama # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -37758,6 +47266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MAMA(CYTHON_UNUSED PyObject *__pyx_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ /* function exit code */ __pyx_L1_error:; @@ -37773,6 +47288,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_230MAMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_233MAVP(PyObject *__pyx_self, @@ -37958,10 +47480,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -37969,47 +47488,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MAVP(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_periods); + /* "talib/_func.pxi":3599 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * periods = check_array(periods) + * length = check_length2(real, periods) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3600 + * np.ndarray outreal + * real = check_array(real) + * periods = check_array(periods) # <<<<<<<<<<<<<< + * length = check_length2(real, periods) + * begidx = check_begidx2(length, (real.data), (periods.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3600, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 3601, __pyx_L1_error) + /* "talib/_func.pxi":3601 + * real = check_array(real) + * periods = check_array(periods) + * length = check_length2(real, periods) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real.data), (periods.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3601, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3602, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3602, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3602, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":3602 + * periods = check_array(periods) + * length = check_length2(real, periods) + * begidx = check_begidx2(length, (real.data), (periods.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3602, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3603 + * length = check_length2(real, periods) + * begidx = check_begidx2(length, (real.data), (periods.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3604 + * begidx = check_begidx2(length, (real.data), (periods.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAVP( 0 , endidx , (real.data)+begidx , (periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MAVP_Lookback(__pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype)); + /* "talib/_func.pxi":3605 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MAVP( 0 , endidx , (real.data)+begidx , (periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAVP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3605, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3606, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3606, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3606, __pyx_L1_error) - __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3606 + * lookback = begidx + lib.TA_MAVP_Lookback( minperiod , maxperiod , matype ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAVP( 0 , endidx , (real.data)+begidx , (periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAVP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MAVP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3607 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAVP( 0 , endidx , (real.data)+begidx , (periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAVP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3608 + * retCode = lib.TA_MAVP( 0 , endidx , (real.data)+begidx , (periods.data)+begidx , minperiod , maxperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAVP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -38025,6 +47616,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_232MAVP(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_235MAX(PyObject *__pyx_self, @@ -38159,50 +47757,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MAX(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3631 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3631, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3632, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3632 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3633 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3633, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3634 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3635 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MAX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3636 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3636, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3637, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3637, __pyx_L1_error) - __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3637 + * lookback = begidx + lib.TA_MAX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3638 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3638, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3639 + * retCode = lib.TA_MAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MAX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -38217,6 +47878,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_234MAX(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_237MAXINDEX(PyObject *__pyx_self, @@ -38353,62 +48021,145 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAXINDEX(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - npy_intp __pyx_t_6; - int __pyx_t_7; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3662 + * int outnbelement + * np.ndarray outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3663, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3664, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3664, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3663 + * np.ndarray outinteger + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3664 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3664, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3665 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3666 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MAXINDEX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3667 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MAXINDEX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3667, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3668, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3668, __pyx_L1_error) - __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3668 + * lookback = begidx + lib.TA_MAXINDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAXINDEX", retCode) + * outinteger_data = outinteger.data + */ + __pyx_v_retCode = TA_MAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3669 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MAXINDEX", retCode) # <<<<<<<<<<<<<< + * outinteger_data = outinteger.data + * for i from lookback <= i < length: + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3669, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3670, __pyx_L1_error) - __pyx_v_outinteger_data = ((int *)__pyx_t_5); - - __pyx_t_6 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - - __pyx_t_7 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_7]) = ((__pyx_v_outinteger_data[__pyx_t_7]) + __pyx_v_begidx); + /* "talib/_func.pxi":3670 + * retCode = lib.TA_MAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MAXINDEX", retCode) + * outinteger_data = outinteger.data # <<<<<<<<<<<<<< + * for i from lookback <= i < length: + * outinteger_data[i] += begidx + */ + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); + + /* "talib/_func.pxi":3671 + * _ta_check_success("TA_MAXINDEX", retCode) + * outinteger_data = outinteger.data + * for i from lookback <= i < length: # <<<<<<<<<<<<<< + * outinteger_data[i] += begidx + * return outinteger + */ + __pyx_t_3 = __pyx_v_length; + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "talib/_func.pxi":3672 + * outinteger_data = outinteger.data + * for i from lookback <= i < length: + * outinteger_data[i] += begidx # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); } + /* "talib/_func.pxi":3673 + * for i from lookback <= i < length: + * outinteger_data[i] += begidx + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -38423,6 +48174,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_236MAXINDEX(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_239MEDPRICE(PyObject *__pyx_self, @@ -38555,10 +48313,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -38566,47 +48321,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MEDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":3694 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3694, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3695 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3695, __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)-1))) __PYX_ERR(3, 3696, __pyx_L1_error) + /* "talib/_func.pxi":3696 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3696, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3697, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3697, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3697, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":3697 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3697, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3698 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3699 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MEDPRICE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MEDPRICE_Lookback()); + /* "talib/_func.pxi":3700 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MEDPRICE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3701, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3701, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3701, __pyx_L1_error) - __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3701 + * lookback = begidx + lib.TA_MEDPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MEDPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MEDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3702 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MEDPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3702, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3703 + * retCode = lib.TA_MEDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MEDPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -38622,6 +48449,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_238MEDPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3705 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_241MFI(PyObject *__pyx_self, @@ -38805,12 +48639,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_int __pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -38820,61 +48649,143 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MFI(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_close); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":3726 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3727 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * volume = check_array(volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3727, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3728 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3729 + * low = check_array(low) + * close = check_array(close) + * volume = check_array(volume) # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3729, __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)-1))) __PYX_ERR(3, 3730, __pyx_L1_error) + /* "talib/_func.pxi":3730 + * close = check_array(close) + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3730, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5), ((double *)__pyx_t_6)); if (unlikely(__pyx_t_7 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_7; - + /* "talib/_func.pxi":3731 + * volume = check_array(volume) + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx4(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3731, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3732 + * length = check_length4(high, low, close, volume) + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3733 + * begidx = check_begidx4(length, (high.data), (low.data), (close.data), (volume.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MFI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3734 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MFI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3734, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3735, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3735, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3735, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3735, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3735, __pyx_L1_error) - __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_t_6) + __pyx_v_begidx), (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3735 + * lookback = begidx + lib.TA_MFI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MFI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MFI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3736 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MFI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3736, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3737 + * retCode = lib.TA_MFI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , (volume.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MFI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3705 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -38892,6 +48803,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_240MFI(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3739 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_243MIDPOINT(PyObject *__pyx_self, @@ -39026,50 +48944,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MIDPOINT(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MIDPOINT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3760 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3761, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3762, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3762, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3761 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3762 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3762, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3763 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3764 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPOINT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPOINT_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3765 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MIDPOINT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPOINT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3765, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3766, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3766, __pyx_L1_error) - __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3766 + * lookback = begidx + lib.TA_MIDPOINT_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPOINT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIDPOINT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIDPOINT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3767 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPOINT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPOINT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3768 + * retCode = lib.TA_MIDPOINT( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPOINT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3739 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -39084,6 +49065,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_242MIDPOINT(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_245MIDPRICE(PyObject *__pyx_self, @@ -39235,10 +49223,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -39246,47 +49231,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MIDPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":3791 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3791, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3792 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3792, __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)-1))) __PYX_ERR(3, 3793, __pyx_L1_error) + /* "talib/_func.pxi":3793 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3793, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3794, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3794, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3794, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":3794 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3794, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3795 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3796 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MIDPRICE_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3797 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MIDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPRICE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3797, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3798, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3798, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3798, __pyx_L1_error) - __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3798 + * lookback = begidx + lib.TA_MIDPRICE_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIDPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIDPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3799 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3799, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3800 + * retCode = lib.TA_MIDPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIDPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -39302,6 +49359,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_244MIDPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_247MIN(PyObject *__pyx_self, @@ -39436,50 +49500,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3823 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3823, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3824, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3825, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3825, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3824 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3825 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3825, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3826 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3827 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MIN_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3828 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MIN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3828, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3829, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3829, __pyx_L1_error) - __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3829 + * lookback = begidx + lib.TA_MIN_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3830 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MIN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3830, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3831 + * retCode = lib.TA_MIN( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MIN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -39494,6 +49621,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_246MIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_249MININDEX(PyObject *__pyx_self, @@ -39630,62 +49764,145 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MININDEX(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - npy_intp __pyx_t_6; - int __pyx_t_7; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MININDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3854 + * int outnbelement + * np.ndarray outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3854, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3855, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3856, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3856, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3855 + * np.ndarray outinteger + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3856 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3856, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3857 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3858 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MININDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MININDEX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3859 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MININDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MININDEX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3859, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outinteger = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3860, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3860, __pyx_L1_error) - __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3860 + * lookback = begidx + lib.TA_MININDEX_Lookback( timeperiod ) + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MININDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MININDEX", retCode) + * outinteger_data = outinteger.data + */ + __pyx_v_retCode = TA_MININDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3861 + * outinteger = make_int_array(length, lookback) + * retCode = lib.TA_MININDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MININDEX", retCode) # <<<<<<<<<<<<<< + * outinteger_data = outinteger.data + * for i from lookback <= i < length: + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3861, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3862, __pyx_L1_error) - __pyx_v_outinteger_data = ((int *)__pyx_t_5); - - __pyx_t_6 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_6; __pyx_v_i++) { - - __pyx_t_7 = __pyx_v_i; - (__pyx_v_outinteger_data[__pyx_t_7]) = ((__pyx_v_outinteger_data[__pyx_t_7]) + __pyx_v_begidx); + /* "talib/_func.pxi":3862 + * retCode = lib.TA_MININDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outinteger.data)+lookback ) + * _ta_check_success("TA_MININDEX", retCode) + * outinteger_data = outinteger.data # <<<<<<<<<<<<<< + * for i from lookback <= i < length: + * outinteger_data[i] += begidx + */ + __pyx_v_outinteger_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outinteger)); + + /* "talib/_func.pxi":3863 + * _ta_check_success("TA_MININDEX", retCode) + * outinteger_data = outinteger.data + * for i from lookback <= i < length: # <<<<<<<<<<<<<< + * outinteger_data[i] += begidx + * return outinteger + */ + __pyx_t_3 = __pyx_v_length; + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "talib/_func.pxi":3864 + * outinteger_data = outinteger.data + * for i from lookback <= i < length: + * outinteger_data[i] += begidx # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outinteger_data[__pyx_t_4]) = ((__pyx_v_outinteger_data[__pyx_t_4]) + __pyx_v_begidx); } + /* "talib/_func.pxi":3865 + * for i from lookback <= i < length: + * outinteger_data[i] += begidx + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outinteger); __pyx_r = ((PyObject *)__pyx_v_outinteger); goto __pyx_L0; + /* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -39700,6 +49917,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_248MININDEX(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_251MINMAX(PyObject *__pyx_self, @@ -39835,52 +50059,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MINMAX(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MINMAX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3890 + * np.ndarray outmin + * np.ndarray outmax + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3890, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3891, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3892, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3892, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3891 + * np.ndarray outmax + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3892 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3892, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3893 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) + * outmin = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3894 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outmin = make_double_array(length, lookback) + * outmax = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3895 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) + * outmin = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outmax = make_double_array(length, lookback) + * retCode = lib.TA_MINMAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outmin.data)+lookback , (outmax.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmin = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3896 + * lookback = begidx + lib.TA_MINMAX_Lookback( timeperiod ) + * outmin = make_double_array(length, lookback) + * outmax = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MINMAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outmin.data)+lookback , (outmax.data)+lookback ) + * _ta_check_success("TA_MINMAX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3896, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmax = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3897, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmin); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3897, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmax); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3897, __pyx_L1_error) - __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3897 + * outmin = make_double_array(length, lookback) + * outmax = make_double_array(length, lookback) + * retCode = lib.TA_MINMAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outmin.data)+lookback , (outmax.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINMAX", retCode) + * return outmin , outmax + */ + __pyx_v_retCode = TA_MINMAX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmin)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmax)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3898 + * outmax = make_double_array(length, lookback) + * retCode = lib.TA_MINMAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outmin.data)+lookback , (outmax.data)+lookback ) + * _ta_check_success("TA_MINMAX", retCode) # <<<<<<<<<<<<<< + * return outmin , outmax + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3898, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3899 + * retCode = lib.TA_MINMAX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outmin.data)+lookback , (outmax.data)+lookback ) + * _ta_check_success("TA_MINMAX", retCode) + * return outmin , outmax # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3899, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -39894,6 +50179,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MINMAX(CYTHON_UNUSED PyObject *__py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -39909,6 +50201,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_250MINMAX(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_253MINMAXINDEX(PyObject *__pyx_self, @@ -40047,74 +50346,175 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(CYTHON_UNUSED PyObject PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; - npy_intp __pyx_t_7; - int __pyx_t_8; + npy_int __pyx_t_2; + npy_intp __pyx_t_3; + int __pyx_t_4; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MINMAXINDEX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":3924 + * np.ndarray outminidx + * np.ndarray outmaxidx + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3925, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3926, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3926, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":3925 + * np.ndarray outmaxidx + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":3926 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3926, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":3927 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) + * outminidx = make_int_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3928 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outminidx = make_int_array(length, lookback) + * outmaxidx = make_int_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MINMAXINDEX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3929 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) + * outminidx = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * outmaxidx = make_int_array(length, lookback) + * retCode = lib.TA_MINMAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outminidx.data)+lookback , (outmaxidx.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3929, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outminidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3930 + * lookback = begidx + lib.TA_MINMAXINDEX_Lookback( timeperiod ) + * outminidx = make_int_array(length, lookback) + * outmaxidx = make_int_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MINMAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outminidx.data)+lookback , (outmaxidx.data)+lookback ) + * _ta_check_success("TA_MINMAXINDEX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_int_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3930, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outmaxidx = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3931, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3931, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3931, __pyx_L1_error) - __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_t_5) + __pyx_v_lookback), (((int *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3931 + * outminidx = make_int_array(length, lookback) + * outmaxidx = make_int_array(length, lookback) + * retCode = lib.TA_MINMAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outminidx.data)+lookback , (outmaxidx.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINMAXINDEX", retCode) + * outminidx_data = outminidx.data + */ + __pyx_v_retCode = TA_MINMAXINDEX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)) + __pyx_v_lookback), (((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3932 + * outmaxidx = make_int_array(length, lookback) + * retCode = lib.TA_MINMAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outminidx.data)+lookback , (outmaxidx.data)+lookback ) + * _ta_check_success("TA_MINMAXINDEX", retCode) # <<<<<<<<<<<<<< + * outminidx_data = outminidx.data + * for i from lookback <= i < length: + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3932, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3933, __pyx_L1_error) - __pyx_v_outminidx_data = ((int *)__pyx_t_6); - - __pyx_t_7 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { - - __pyx_t_8 = __pyx_v_i; - (__pyx_v_outminidx_data[__pyx_t_8]) = ((__pyx_v_outminidx_data[__pyx_t_8]) + __pyx_v_begidx); + /* "talib/_func.pxi":3933 + * retCode = lib.TA_MINMAXINDEX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outminidx.data)+lookback , (outmaxidx.data)+lookback ) + * _ta_check_success("TA_MINMAXINDEX", retCode) + * outminidx_data = outminidx.data # <<<<<<<<<<<<<< + * for i from lookback <= i < length: + * outminidx_data[i] += begidx + */ + __pyx_v_outminidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outminidx)); + + /* "talib/_func.pxi":3934 + * _ta_check_success("TA_MINMAXINDEX", retCode) + * outminidx_data = outminidx.data + * for i from lookback <= i < length: # <<<<<<<<<<<<<< + * outminidx_data[i] += begidx + * outmaxidx_data = outmaxidx.data + */ + __pyx_t_3 = __pyx_v_length; + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "talib/_func.pxi":3935 + * outminidx_data = outminidx.data + * for i from lookback <= i < length: + * outminidx_data[i] += begidx # <<<<<<<<<<<<<< + * outmaxidx_data = outmaxidx.data + * for i from lookback <= i < length: + */ + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outminidx_data[__pyx_t_4]) = ((__pyx_v_outminidx_data[__pyx_t_4]) + __pyx_v_begidx); } - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3936, __pyx_L1_error) - __pyx_v_outmaxidx_data = ((int *)__pyx_t_6); - - __pyx_t_7 = __pyx_v_length; - for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_7; __pyx_v_i++) { - - __pyx_t_8 = __pyx_v_i; - (__pyx_v_outmaxidx_data[__pyx_t_8]) = ((__pyx_v_outmaxidx_data[__pyx_t_8]) + __pyx_v_begidx); + /* "talib/_func.pxi":3936 + * for i from lookback <= i < length: + * outminidx_data[i] += begidx + * outmaxidx_data = outmaxidx.data # <<<<<<<<<<<<<< + * for i from lookback <= i < length: + * outmaxidx_data[i] += begidx + */ + __pyx_v_outmaxidx_data = ((int *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outmaxidx)); + + /* "talib/_func.pxi":3937 + * outminidx_data[i] += begidx + * outmaxidx_data = outmaxidx.data + * for i from lookback <= i < length: # <<<<<<<<<<<<<< + * outmaxidx_data[i] += begidx + * return outminidx , outmaxidx + */ + __pyx_t_3 = __pyx_v_length; + for (__pyx_v_i = __pyx_v_lookback; __pyx_v_i < __pyx_t_3; __pyx_v_i++) { + + /* "talib/_func.pxi":3938 + * outmaxidx_data = outmaxidx.data + * for i from lookback <= i < length: + * outmaxidx_data[i] += begidx # <<<<<<<<<<<<<< + * return outminidx , outmaxidx + * + */ + __pyx_t_4 = __pyx_v_i; + (__pyx_v_outmaxidx_data[__pyx_t_4]) = ((__pyx_v_outmaxidx_data[__pyx_t_4]) + __pyx_v_begidx); } + /* "talib/_func.pxi":3939 + * for i from lookback <= i < length: + * outmaxidx_data[i] += begidx + * return outminidx , outmaxidx # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3939, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -40128,6 +50528,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -40143,6 +50550,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_252MINMAXINDEX(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_255MINUS_DI(PyObject *__pyx_self, @@ -40310,11 +50724,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -40323,54 +50733,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MINUS_DI(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":3962 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3963 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3963, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3964 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3964, __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)-1))) __PYX_ERR(3, 3965, __pyx_L1_error) + /* "talib/_func.pxi":3965 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3965, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3966, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3966, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3966, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3966, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":3966 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3966, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3967 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":3968 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":3969 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MINUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3969, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3970, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3970, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3970, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3970, __pyx_L1_error) - __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":3970 + * lookback = begidx + lib.TA_MINUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINUS_DI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MINUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":3971 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3971, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":3972 + * retCode = lib.TA_MINUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -40387,6 +50874,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_254MINUS_DI(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_257MINUS_DM(PyObject *__pyx_self, @@ -40538,10 +51032,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -40549,47 +51040,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINUS_DM(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":3995 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":3996 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 3996, __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)-1))) __PYX_ERR(3, 3997, __pyx_L1_error) + /* "talib/_func.pxi":3997 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 3997, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":3998 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 3998, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":3999 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4000 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MINUS_DM_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4001 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MINUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DM", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4001, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4002, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4002, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4002, __pyx_L1_error) - __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4002 + * lookback = begidx + lib.TA_MINUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINUS_DM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MINUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4003 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MINUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4003, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4004 + * retCode = lib.TA_MINUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MINUS_DM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -40605,6 +51168,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_256MINUS_DM(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_259MOM(PyObject *__pyx_self, @@ -40739,50 +51309,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MOM(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("MOM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4027 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4027, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4028, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4029, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4029, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4028 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4029 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4029, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4030 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4031 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MOM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MOM_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4032 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MOM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MOM", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4032, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4033, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4033, __pyx_L1_error) - __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4033 + * lookback = begidx + lib.TA_MOM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MOM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MOM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MOM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4034 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MOM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MOM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4034, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4035 + * retCode = lib.TA_MOM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MOM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -40797,6 +51430,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_258MOM(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_261MULT(PyObject *__pyx_self, @@ -40929,10 +51569,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -40940,47 +51577,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MULT(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":4057 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4058 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4058, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4059, __pyx_L1_error) + /* "talib/_func.pxi":4059 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4059, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4060, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4060, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4060, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4060 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MULT_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4060, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4061 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_MULT_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4062 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MULT_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MULT( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_MULT_Lookback()); + /* "talib/_func.pxi":4063 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_MULT_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_MULT( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MULT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4064, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4064, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4064, __pyx_L1_error) - __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4064 + * lookback = begidx + lib.TA_MULT_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MULT( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MULT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MULT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4065 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_MULT( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MULT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4065, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4066 + * retCode = lib.TA_MULT( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_MULT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -40996,6 +51705,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_260MULT(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_263NATR(PyObject *__pyx_self, @@ -41163,11 +51879,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -41176,54 +51888,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262NATR(CYTHON_UNUSED PyObject *__pyx_ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4089 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4089, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4090 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4091 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4091, __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)-1))) __PYX_ERR(3, 4092, __pyx_L1_error) + /* "talib/_func.pxi":4092 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4092, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4093, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4093, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4093, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4093, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":4093 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4093, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4094 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4095 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_NATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_NATR_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4096 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_NATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_NATR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4096, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4097, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4097, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4097, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4097, __pyx_L1_error) - __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4097 + * lookback = begidx + lib.TA_NATR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_NATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_NATR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_NATR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4098 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_NATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_NATR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4098, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4099 + * retCode = lib.TA_NATR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_NATR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -41240,6 +52029,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_262NATR(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_265OBV(PyObject *__pyx_self, @@ -41372,10 +52168,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -41383,47 +52176,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264OBV(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real); __Pyx_INCREF((PyObject *)__pyx_v_volume); + /* "talib/_func.pxi":4121 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * volume = check_array(volume) + * length = check_length2(real, volume) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4122 + * np.ndarray outreal + * real = check_array(real) + * volume = check_array(volume) # <<<<<<<<<<<<<< + * length = check_length2(real, volume) + * begidx = check_begidx2(length, (real.data), (volume.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4122, __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)-1))) __PYX_ERR(3, 4123, __pyx_L1_error) + /* "talib/_func.pxi":4123 + * real = check_array(real) + * volume = check_array(volume) + * length = check_length2(real, volume) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real.data), (volume.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4123, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4124, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4124, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4124, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4124 + * volume = check_array(volume) + * length = check_length2(real, volume) + * begidx = check_begidx2(length, (real.data), (volume.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_OBV_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4124, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4125 + * length = check_length2(real, volume) + * begidx = check_begidx2(length, (real.data), (volume.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_OBV_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4126 + * begidx = check_begidx2(length, (real.data), (volume.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_OBV_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_OBV( 0 , endidx , (real.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_OBV_Lookback()); + /* "talib/_func.pxi":4127 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_OBV_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_OBV( 0 , endidx , (real.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_OBV", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4128, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4128, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4128, __pyx_L1_error) - __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4128 + * lookback = begidx + lib.TA_OBV_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_OBV( 0 , endidx , (real.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_OBV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_OBV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4129 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_OBV( 0 , endidx , (real.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_OBV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4129, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4130 + * retCode = lib.TA_OBV( 0 , endidx , (real.data)+begidx , (volume.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_OBV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -41439,6 +52304,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_264OBV(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_267PLUS_DI(PyObject *__pyx_self, @@ -41606,11 +52478,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -41619,54 +52487,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266PLUS_DI(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4153 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4154 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4154, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4155 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4155, __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)-1))) __PYX_ERR(3, 4156, __pyx_L1_error) + /* "talib/_func.pxi":4156 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4156, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":4157 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4157, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4158 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4159 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4160 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_PLUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4161, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4161, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4161, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4161, __pyx_L1_error) - __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4161 + * lookback = begidx + lib.TA_PLUS_DI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PLUS_DI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PLUS_DI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4162 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4162, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4163 + * retCode = lib.TA_PLUS_DI( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -41683,6 +52628,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_266PLUS_DI(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_269PLUS_DM(PyObject *__pyx_self, @@ -41834,10 +52786,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -41845,47 +52794,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268PLUS_DM(CYTHON_UNUSED PyObject *__p __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4186 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4187 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4187, __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)-1))) __PYX_ERR(3, 4188, __pyx_L1_error) + /* "talib/_func.pxi":4188 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4188, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4189, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4189, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4189, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4189 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4189, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4190 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4191 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_PLUS_DM_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4192 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_PLUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DM", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4192, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4193, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4193, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4193, __pyx_L1_error) - __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4193 + * lookback = begidx + lib.TA_PLUS_DM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PLUS_DM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PLUS_DM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4194 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PLUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4194, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4195 + * retCode = lib.TA_PLUS_DM( 0 , endidx , (high.data)+begidx , (low.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PLUS_DM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -41901,6 +52922,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_268PLUS_DM(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_271PPO(PyObject *__pyx_self, @@ -42069,50 +53097,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270PPO(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("PPO", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4220 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4221, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4222, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4222, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4221 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4222 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4222, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4223 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4224 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PPO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_PPO_Lookback(__pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype)); + /* "talib/_func.pxi":4225 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_PPO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PPO", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4225, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4226, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4226, __pyx_L1_error) - __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4226 + * lookback = begidx + lib.TA_PPO_Lookback( fastperiod , slowperiod , matype ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PPO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PPO", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PPO(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4227 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_PPO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PPO", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4228 + * retCode = lib.TA_PPO( 0 , endidx , (real.data)+begidx , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_PPO", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ /* function exit code */ __pyx_L1_error:; @@ -42127,6 +53218,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_270PPO(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_273ROC(PyObject *__pyx_self, @@ -42261,50 +53359,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272ROC(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROC", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4251 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4251, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4252, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4253, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4253, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4252 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4253 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4253, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4254 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4255 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROC( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ROC_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4256 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ROC( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROC", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4257, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4257, __pyx_L1_error) - __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4257 + * lookback = begidx + lib.TA_ROC_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROC( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4258 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROC( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4258, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4259 + * retCode = lib.TA_ROC( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -42319,6 +53480,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_272ROC(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_275ROCP(PyObject *__pyx_self, @@ -42453,50 +53621,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274ROCP(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCP", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4282 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4283, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4284, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4284, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4283 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4284 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4284, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4285 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4286 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ROCP_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4287 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCP", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4287, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4288, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4288, __pyx_L1_error) - __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4288 + * lookback = begidx + lib.TA_ROCP_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCP(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4289 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4289, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4290 + * retCode = lib.TA_ROCP( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -42511,6 +53742,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_274ROCP(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_277ROCR(PyObject *__pyx_self, @@ -42645,50 +53883,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276ROCR(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4313 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4313, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4314, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4315, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4315, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4314 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4315 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4315, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4316 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4317 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4318 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCR( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4318, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4319, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4319, __pyx_L1_error) - __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4319 + * lookback = begidx + lib.TA_ROCR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4320 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4321 + * retCode = lib.TA_ROCR( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -42703,6 +54004,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_276ROCR(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_279ROCR100(PyObject *__pyx_self, @@ -42837,50 +54145,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROCR100(CYTHON_UNUSED PyObject *__p PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("ROCR100", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4344 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4345, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4346, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4346, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4345 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4346 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4346, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4347 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4348 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR100( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ROCR100_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4349 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCR100( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR100", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4349, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4350, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4350, __pyx_L1_error) - __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4350 + * lookback = begidx + lib.TA_ROCR100_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR100( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCR100", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCR100(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4351 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ROCR100( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR100", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4351, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4352 + * retCode = lib.TA_ROCR100( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ROCR100", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -42895,6 +54266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_278ROCR100(CYTHON_UNUSED PyObject *__p return __pyx_r; } +/* "talib/_func.pxi":4354 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_281RSI(PyObject *__pyx_self, @@ -43029,50 +54407,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280RSI(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("RSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4375 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4375, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4376, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4377, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4377, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4376 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4377 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4377, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4378 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4379 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_RSI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_RSI_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4380 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_RSI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_RSI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4381, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4381, __pyx_L1_error) - __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4381 + * lookback = begidx + lib.TA_RSI_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_RSI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_RSI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_RSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4382 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_RSI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_RSI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4383 + * retCode = lib.TA_RSI( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_RSI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4354 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -43087,6 +54528,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_280RSI(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_283SAR(PyObject *__pyx_self, @@ -43255,10 +54703,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -43266,47 +54711,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282SAR(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4407 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4408 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4408, __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)-1))) __PYX_ERR(3, 4409, __pyx_L1_error) + /* "talib/_func.pxi":4409 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4409, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4410, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4410, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4410, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4410 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4410, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4411 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4412 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SAR_Lookback(__pyx_v_acceleration, __pyx_v_maximum)); + /* "talib/_func.pxi":4413 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SAR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4413, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4414, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4414, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4414, __pyx_L1_error) - __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4414 + * lookback = begidx + lib.TA_SAR_Lookback( acceleration , maximum ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SAR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4415 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4415, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4416 + * retCode = lib.TA_SAR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , acceleration , maximum , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ /* function exit code */ __pyx_L1_error:; @@ -43322,6 +54839,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_282SAR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_285SAREXT(PyObject *__pyx_self, @@ -43592,10 +55116,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -43603,47 +55124,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284SAREXT(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_high); __Pyx_INCREF((PyObject *)__pyx_v_low); + /* "talib/_func.pxi":4446 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * length = check_length2(high, low) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4447 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4447, __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)-1))) __PYX_ERR(3, 4448, __pyx_L1_error) + /* "talib/_func.pxi":4448 + * high = check_array(high) + * low = check_array(low) + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4448, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4449, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4449, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4449, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4449 + * low = check_array(low) + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4449, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4450 + * length = check_length2(high, low) + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4451 + * begidx = check_begidx2(length, (high.data), (low.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAREXT( 0 , endidx , (high.data)+begidx , (low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , (outreal.data)+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)); + /* "talib/_func.pxi":4452 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SAREXT( 0 , endidx , (high.data)+begidx , (low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAREXT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4453, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4453, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4453, __pyx_L1_error) - __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __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_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4453 + * lookback = begidx + lib.TA_SAREXT_Lookback( startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAREXT( 0 , endidx , (high.data)+begidx , (low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SAREXT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SAREXT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4454 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SAREXT( 0 , endidx , (high.data)+begidx , (low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAREXT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4454, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4455 + * retCode = lib.TA_SAREXT( 0 , endidx , (high.data)+begidx , (low.data)+begidx , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SAREXT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ /* function exit code */ __pyx_L1_error:; @@ -43659,6 +55252,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_284SAREXT(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_287SIN(PyObject *__pyx_self, @@ -43774,50 +55374,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286SIN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SIN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4476 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4476, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4477, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4478, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4478, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4477 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4478 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SIN_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4478, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4479 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SIN_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4480 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SIN_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SIN_Lookback()); + /* "talib/_func.pxi":4481 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SIN_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SIN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4481, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4482, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4482, __pyx_L1_error) - __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4482 + * lookback = begidx + lib.TA_SIN_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SIN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SIN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4483 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SIN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4483, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4484 + * retCode = lib.TA_SIN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SIN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -43832,6 +55495,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_286SIN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4486 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_289SINH(PyObject *__pyx_self, @@ -43947,50 +55617,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SINH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SINH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4505 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4506, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4507, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4507, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4506 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4507 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SINH_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4507, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4508 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SINH_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4509 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SINH_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SINH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SINH_Lookback()); + /* "talib/_func.pxi":4510 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SINH_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SINH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SINH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4510, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4511, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4511, __pyx_L1_error) - __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4511 + * lookback = begidx + lib.TA_SINH_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SINH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SINH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SINH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4512 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SINH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SINH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4512, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4513 + * retCode = lib.TA_SINH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SINH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4486 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -44005,6 +55738,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_288SINH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_291SMA(PyObject *__pyx_self, @@ -44139,50 +55879,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4536 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4536, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4537, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4538, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4538, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4537 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4538 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4538, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4539 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4540 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4541 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4541, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4542, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4542, __pyx_L1_error) - __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4542 + * lookback = begidx + lib.TA_SMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4543 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4543, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4544 + * retCode = lib.TA_SMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -44197,6 +56000,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_290SMA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_293SQRT(PyObject *__pyx_self, @@ -44312,50 +56122,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SQRT(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SQRT", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4565 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4566, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4567, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4567, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4566 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4567 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SQRT_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4567, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4568 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SQRT_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4569 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SQRT_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SQRT( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SQRT_Lookback()); + /* "talib/_func.pxi":4570 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SQRT_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SQRT( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SQRT", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4571, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4571, __pyx_L1_error) - __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4571 + * lookback = begidx + lib.TA_SQRT_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SQRT( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SQRT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SQRT(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4572 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SQRT( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SQRT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4572, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4573 + * retCode = lib.TA_SQRT( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SQRT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -44370,6 +56243,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_292SQRT(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4575 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_295STDDEV(PyObject *__pyx_self, @@ -44521,50 +56401,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294STDDEV(CYTHON_UNUSED PyObject *__py PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("STDDEV", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4597 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4598, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4599, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4599, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4598 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4599 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4599, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4600 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4601 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_STDDEV_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + /* "talib/_func.pxi":4602 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_STDDEV", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4602, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4603, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4603, __pyx_L1_error) - __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4603 + * lookback = begidx + lib.TA_STDDEV_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STDDEV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_STDDEV(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4604 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_STDDEV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4604, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4605 + * retCode = lib.TA_STDDEV( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_STDDEV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4575 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -44579,6 +56522,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_294STDDEV(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4607 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_297STOCH(PyObject *__pyx_self, @@ -44815,12 +56765,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -44829,55 +56774,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4634 + * np.ndarray outslowk + * np.ndarray outslowd + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4634, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4635 + * np.ndarray outslowd + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4635, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4636 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4636, __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)-1))) __PYX_ERR(3, 4637, __pyx_L1_error) + /* "talib/_func.pxi":4637 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4637, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4638, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4638, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4638, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4638, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":4638 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4638, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4639 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_STOCH_Lookback( fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype ) + * outslowk = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4640 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * 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) + */ __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)); + /* "talib/_func.pxi":4641 + * endidx = length - begidx - 1 + * 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) + * 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 ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4641, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4642 + * 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) # <<<<<<<<<<<<<< + * 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 ) + * _ta_check_success("TA_STOCH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4642, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outslowd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4643, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4643, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4643, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowk); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4643, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowd); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4643, __pyx_L1_error) - __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __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_t_7) + __pyx_v_lookback), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4643 + * outslowk = make_double_array(length, lookback) + * outslowd = make_double_array(length, lookback) + * 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 ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCH", retCode) + * return outslowk , outslowd + */ + __pyx_v_retCode = TA_STOCH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outslowk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outslowd)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4644 + * outslowd = make_double_array(length, lookback) + * 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 ) + * _ta_check_success("TA_STOCH", retCode) # <<<<<<<<<<<<<< + * return outslowk , outslowd + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4645 + * 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 ) + * _ta_check_success("TA_STOCH", retCode) + * return outslowk , outslowd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4645, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -44891,6 +56912,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4607 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -44908,6 +56936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_296STOCH(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":4647 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_299STOCHF(PyObject *__pyx_self, @@ -45110,12 +57145,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; - char *__pyx_t_8; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -45124,55 +57154,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4672 + * np.ndarray outfastk + * np.ndarray outfastd + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4672, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4673 + * np.ndarray outfastd + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4673, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4674 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4674, __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)-1))) __PYX_ERR(3, 4675, __pyx_L1_error) + /* "talib/_func.pxi":4675 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4675, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4676, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4676, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4676, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4676, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":4676 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4676, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4677 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) + * outfastk = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4678 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) # <<<<<<<<<<<<<< + * outfastk = make_double_array(length, lookback) + * outfastd = make_double_array(length, lookback) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHF_Lookback(__pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + /* "talib/_func.pxi":4679 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) + * outfastk = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * outfastd = make_double_array(length, lookback) + * 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 ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4680 + * lookback = begidx + lib.TA_STOCHF_Lookback( fastk_period , fastd_period , fastd_matype ) + * outfastk = make_double_array(length, lookback) + * outfastd = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * 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 ) + * _ta_check_success("TA_STOCHF", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4680, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4681, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4681, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4681, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4681, __pyx_L1_error) - __pyx_t_8 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd); if (unlikely(__pyx_t_8 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4681, __pyx_L1_error) - __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback), (((double *)__pyx_t_8) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4681 + * outfastk = make_double_array(length, lookback) + * outfastd = make_double_array(length, lookback) + * 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 ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCHF", retCode) + * return outfastk , outfastd + */ + __pyx_v_retCode = TA_STOCHF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4682 + * outfastd = make_double_array(length, lookback) + * 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 ) + * _ta_check_success("TA_STOCHF", retCode) # <<<<<<<<<<<<<< + * return outfastk , outfastd + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4682, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4683 + * 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 ) + * _ta_check_success("TA_STOCHF", retCode) + * return outfastk , outfastd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4683, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -45186,6 +57292,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__py __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4647 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -45203,6 +57316,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_298STOCHF(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4685 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_301STOCHRSI(PyObject *__pyx_self, @@ -45389,52 +57509,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STOCHRSI(CYTHON_UNUSED PyObject *__ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("STOCHRSI", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4711 + * np.ndarray outfastk + * np.ndarray outfastd + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4711, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4712, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4713, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4713, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4712 + * np.ndarray outfastd + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4713 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4713, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4714 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_STOCHRSI_Lookback( timeperiod , fastk_period , fastd_period , fastd_matype ) + * outfastk = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4715 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * 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) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_STOCHRSI_Lookback(__pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype)); + /* "talib/_func.pxi":4716 + * endidx = length - begidx - 1 + * 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) + * retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4716, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastk = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4717 + * 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) # <<<<<<<<<<<<<< + * retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + * _ta_check_success("TA_STOCHRSI", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4717, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outfastd = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4718, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastk); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4718, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4718, __pyx_L1_error) - __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __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_t_5) + __pyx_v_lookback), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4718 + * outfastk = make_double_array(length, lookback) + * outfastd = make_double_array(length, lookback) + * retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCHRSI", retCode) + * return outfastk , outfastd + */ + __pyx_v_retCode = TA_STOCHRSI(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outfastk)) + __pyx_v_lookback), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outfastd)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4719 + * outfastd = make_double_array(length, lookback) + * retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + * _ta_check_success("TA_STOCHRSI", retCode) # <<<<<<<<<<<<<< + * return outfastk , outfastd + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4720 + * retCode = lib.TA_STOCHRSI( 0 , endidx , (real.data)+begidx , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , (outfastk.data)+lookback , (outfastd.data)+lookback ) + * _ta_check_success("TA_STOCHRSI", retCode) + * return outfastk , outfastd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4720, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -45448,6 +57629,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STOCHRSI(CYTHON_UNUSED PyObject *__ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_func.pxi":4685 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -45463,6 +57651,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_300STOCHRSI(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":4722 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_303SUB(PyObject *__pyx_self, @@ -45595,10 +57790,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - npy_int __pyx_t_5; - char *__pyx_t_6; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -45606,47 +57798,119 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302SUB(CYTHON_UNUSED PyObject *__pyx_s __Pyx_INCREF((PyObject *)__pyx_v_real0); __Pyx_INCREF((PyObject *)__pyx_v_real1); + /* "talib/_func.pxi":4742 + * int outnbelement + * np.ndarray outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * length = check_length2(real0, real1) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4742, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4743 + * np.ndarray outreal + * real0 = check_array(real0) + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4743, __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_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_2 == ((npy_intp)-1))) __PYX_ERR(3, 4744, __pyx_L1_error) + /* "talib/_func.pxi":4744 + * real0 = check_array(real0) + * real1 = check_array(real1) + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4744, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4745, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4745, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4)); if (unlikely(__pyx_t_5 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4745, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_5; - + /* "talib/_func.pxi":4745 + * real1 = check_array(real1) + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUB_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx2(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4745, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4746 + * length = check_length2(real0, real1) + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SUB_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4747 + * begidx = check_begidx2(length, (real0.data), (real1.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUB_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SUB_Lookback()); + /* "talib/_func.pxi":4748 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUB_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUB", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4748, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_6 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4749, __pyx_L1_error) - __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_6) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4749 + * lookback = begidx + lib.TA_SUB_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SUB", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SUB(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4750 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUB", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4751 + * retCode = lib.TA_SUB( 0 , endidx , (real0.data)+begidx , (real1.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUB", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4722 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -45662,6 +57926,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_302SUB(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4753 + * 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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_305SUM(PyObject *__pyx_self, @@ -45796,50 +58067,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304SUM(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("SUM", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4774 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4774, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4775, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4776, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4776, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4775 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4776 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4776, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4777 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4778 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_SUM_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4779 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUM", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4779, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4780, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4780, __pyx_L1_error) - __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4780 + * lookback = begidx + lib.TA_SUM_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SUM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SUM(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4781 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4781, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4782 + * retCode = lib.TA_SUM( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_SUM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4753 + * 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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -45854,6 +58188,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_304SUM(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_307T3(PyObject *__pyx_self, @@ -46005,50 +58346,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306T3(CYTHON_UNUSED PyObject *__pyx_se PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("T3", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4806 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4807, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4807 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4808 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4808, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4809 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4810 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_T3( 0 , endidx , (real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_T3_Lookback(__pyx_v_timeperiod, __pyx_v_vfactor)); + /* "talib/_func.pxi":4811 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_T3( 0 , endidx , (real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_T3", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4811, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4812, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4812, __pyx_L1_error) - __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4812 + * lookback = begidx + lib.TA_T3_Lookback( timeperiod , vfactor ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_T3( 0 , endidx , (real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_T3", retCode) + * return outreal + */ + __pyx_v_retCode = TA_T3(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4813 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_T3( 0 , endidx , (real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_T3", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4813, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4814 + * retCode = lib.TA_T3( 0 , endidx , (real.data)+begidx , timeperiod , vfactor , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_T3", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ /* function exit code */ __pyx_L1_error:; @@ -46063,6 +58467,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_306T3(CYTHON_UNUSED PyObject *__pyx_se return __pyx_r; } +/* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_309TAN(PyObject *__pyx_self, @@ -46178,50 +58589,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308TAN(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TAN", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4835 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4835, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4836, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4837, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4837, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4836 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4837 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TAN_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4837, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4838 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TAN_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4839 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TAN_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TAN_Lookback()); + /* "talib/_func.pxi":4840 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TAN_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TAN", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4840, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4841, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4841, __pyx_L1_error) - __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4841 + * lookback = begidx + lib.TA_TAN_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TAN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TAN(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4842 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TAN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4842, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4843 + * retCode = lib.TA_TAN( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TAN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -46236,6 +58710,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_308TAN(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_311TANH(PyObject *__pyx_self, @@ -46351,50 +58832,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310TANH(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TANH", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4864 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4864, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4865, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4866, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4866, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4865 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4866 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TANH_Lookback( ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4866, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4867 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TANH_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4868 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TANH_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TANH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TANH_Lookback()); + /* "talib/_func.pxi":4869 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TANH_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TANH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TANH", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4869, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4870, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4870, __pyx_L1_error) - __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4870 + * lookback = begidx + lib.TA_TANH_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TANH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TANH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TANH(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4871 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TANH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TANH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4871, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4872 + * retCode = lib.TA_TANH( 0 , endidx , (real.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TANH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -46409,6 +58953,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_310TANH(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_313TEMA(PyObject *__pyx_self, @@ -46543,50 +59094,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312TEMA(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TEMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4895 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4895, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4896, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4897, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4897, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4896 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4897 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4897, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4898 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4899 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TEMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4900 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TEMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4900, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4901, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4901, __pyx_L1_error) - __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4901 + * lookback = begidx + lib.TA_TEMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TEMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TEMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4902 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TEMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4902, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4903 + * retCode = lib.TA_TEMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TEMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -46601,6 +59215,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_312TEMA(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_315TRANGE(PyObject *__pyx_self, @@ -46749,11 +59370,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -46762,54 +59379,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TRANGE(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":4924 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4924, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4925 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4925, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":4926 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4926, __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)-1))) __PYX_ERR(3, 4927, __pyx_L1_error) + /* "talib/_func.pxi":4927 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 4927, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4928, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4928, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4928, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4928, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":4928 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRANGE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4928, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":4929 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TRANGE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4930 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRANGE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRANGE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TRANGE_Lookback()); + /* "talib/_func.pxi":4931 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRANGE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TRANGE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRANGE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4931, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4932, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4932, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4932, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4932, __pyx_L1_error) - __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4932 + * lookback = begidx + lib.TA_TRANGE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRANGE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRANGE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRANGE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4933 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRANGE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRANGE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4933, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4934 + * retCode = lib.TA_TRANGE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRANGE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -46826,6 +59520,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_314TRANGE(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_317TRIMA(PyObject *__pyx_self, @@ -46960,50 +59661,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TRIMA(CYTHON_UNUSED PyObject *__pyx PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TRIMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4957 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4957, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4958, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4959, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4959, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4958 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4959 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4959, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4960 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4961 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TRIMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4962 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TRIMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4962, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4963, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4963, __pyx_L1_error) - __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4963 + * lookback = begidx + lib.TA_TRIMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRIMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRIMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4964 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4964, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4965 + * retCode = lib.TA_TRIMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -47018,6 +59782,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_316TRIMA(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_319TRIX(PyObject *__pyx_self, @@ -47152,50 +59923,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TRIX(CYTHON_UNUSED PyObject *__pyx_ PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TRIX", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":4988 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4988, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4989, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4990, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4990, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":4989 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":4990 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 4990, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":4991 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":4992 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TRIX_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":4993 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TRIX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIX", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4993, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4994, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 4994, __pyx_L1_error) - __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":4994 + * lookback = begidx + lib.TA_TRIX_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRIX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRIX(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":4995 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TRIX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 4995, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":4996 + * retCode = lib.TA_TRIX( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TRIX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -47210,6 +60044,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_318TRIX(CYTHON_UNUSED PyObject *__pyx_ return __pyx_r; } +/* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_321TSF(PyObject *__pyx_self, @@ -47344,50 +60185,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TSF(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("TSF", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5019 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5019, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5020, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5021, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5021, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":5020 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":5021 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5021, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":5022 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5023 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TSF( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TSF_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":5024 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TSF( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TSF", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5024, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5025, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5025, __pyx_L1_error) - __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5025 + * lookback = begidx + lib.TA_TSF_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TSF( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TSF", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TSF(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5026 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TSF( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TSF", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5026, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5027 + * retCode = lib.TA_TSF( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TSF", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -47402,6 +60306,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_320TSF(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_323TYPPRICE(PyObject *__pyx_self, @@ -47550,11 +60461,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -47563,54 +60470,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TYPPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5048 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5048, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5049 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5049, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5050 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5050, __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)-1))) __PYX_ERR(3, 5051, __pyx_L1_error) + /* "talib/_func.pxi":5051 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 5051, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":5052 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TYPPRICE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5052, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":5053 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_TYPPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5054 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TYPPRICE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TYPPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_TYPPRICE_Lookback()); + /* "talib/_func.pxi":5055 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_TYPPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_TYPPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TYPPRICE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5055, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5056, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5056, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5056, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5056, __pyx_L1_error) - __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5056 + * lookback = begidx + lib.TA_TYPPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TYPPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TYPPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TYPPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5057 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_TYPPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TYPPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5057, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5058 + * retCode = lib.TA_TYPPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_TYPPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ /* function exit code */ __pyx_L1_error:; @@ -47627,6 +60611,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_322TYPPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_325ULTOSC(PyObject *__pyx_self, @@ -47828,11 +60819,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -47841,54 +60828,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324ULTOSC(CYTHON_UNUSED PyObject *__py __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5083 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5083, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5084 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5084, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5085 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5085, __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)-1))) __PYX_ERR(3, 5086, __pyx_L1_error) + /* "talib/_func.pxi":5086 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 5086, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":5087 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5087, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":5088 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5089 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ULTOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_ULTOSC_Lookback(__pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3)); + /* "talib/_func.pxi":5090 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_ULTOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ULTOSC", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5090, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5091, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5091, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5091, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5091, __pyx_L1_error) - __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5091 + * lookback = begidx + lib.TA_ULTOSC_Lookback( timeperiod1 , timeperiod2 , timeperiod3 ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ULTOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ULTOSC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ULTOSC(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__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_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5092 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_ULTOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ULTOSC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5092, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5093 + * retCode = lib.TA_ULTOSC( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_ULTOSC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -47905,6 +60969,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_324ULTOSC(CYTHON_UNUSED PyObject *__py return __pyx_r; } +/* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_327VAR(PyObject *__pyx_self, @@ -48056,50 +61127,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326VAR(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("VAR", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5117 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5118, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5119, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5119, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":5118 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":5119 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5119, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":5120 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5121 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_VAR( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_VAR_Lookback(__pyx_v_timeperiod, __pyx_v_nbdev)); + /* "talib/_func.pxi":5122 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_VAR( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_VAR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5123, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5123, __pyx_L1_error) - __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5123 + * lookback = begidx + lib.TA_VAR_Lookback( timeperiod , nbdev ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_VAR( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_VAR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_VAR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5124 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_VAR( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_VAR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5125 + * retCode = lib.TA_VAR( 0 , endidx , (real.data)+begidx , timeperiod , nbdev , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_VAR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ /* function exit code */ __pyx_L1_error:; @@ -48114,6 +61248,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_326VAR(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_329WCLPRICE(PyObject *__pyx_self, @@ -48262,11 +61403,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -48275,54 +61412,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328WCLPRICE(CYTHON_UNUSED PyObject *__ __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5146 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5146, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5147 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5148 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5148, __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)-1))) __PYX_ERR(3, 5149, __pyx_L1_error) + /* "talib/_func.pxi":5149 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 5149, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5150, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5150, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5150, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5150, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":5150 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WCLPRICE_Lookback( ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5150, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":5151 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_WCLPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5152 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WCLPRICE_Lookback( ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WCLPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_WCLPRICE_Lookback()); + /* "talib/_func.pxi":5153 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WCLPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_WCLPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WCLPRICE", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5154, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5154, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5154, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5154, __pyx_L1_error) - __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5154 + * lookback = begidx + lib.TA_WCLPRICE_Lookback( ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WCLPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WCLPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WCLPRICE(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5155 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WCLPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WCLPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5155, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5156 + * retCode = lib.TA_WCLPRICE( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WCLPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ /* function exit code */ __pyx_L1_error:; @@ -48339,6 +61553,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_328WCLPRICE(CYTHON_UNUSED PyObject *__ return __pyx_r; } +/* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_331WILLR(PyObject *__pyx_self, @@ -48506,11 +61727,7 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; npy_intp __pyx_t_2; - char *__pyx_t_3; - char *__pyx_t_4; - char *__pyx_t_5; - npy_int __pyx_t_6; - char *__pyx_t_7; + npy_int __pyx_t_3; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; @@ -48519,54 +61736,131 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330WILLR(CYTHON_UNUSED PyObject *__pyx __Pyx_INCREF((PyObject *)__pyx_v_low); __Pyx_INCREF((PyObject *)__pyx_v_close); + /* "talib/_func.pxi":5179 + * int outnbelement + * np.ndarray outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * low = check_array(low) + * close = check_array(close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5179, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5180 + * np.ndarray outreal + * high = check_array(high) + * low = check_array(low) # <<<<<<<<<<<<<< + * close = check_array(close) + * length = check_length3(high, low, close) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5180, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; + /* "talib/_func.pxi":5181 + * high = check_array(high) + * low = check_array(low) + * close = check_array(close) # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5181, __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)-1))) __PYX_ERR(3, 5182, __pyx_L1_error) + /* "talib/_func.pxi":5182 + * low = check_array(low) + * close = check_array(close) + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + */ + __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(3, 5182, __pyx_L1_error) __pyx_v_length = __pyx_t_2; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5183, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5183, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5183, __pyx_L1_error) - __pyx_t_6 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_t_3), ((double *)__pyx_t_4), ((double *)__pyx_t_5)); if (unlikely(__pyx_t_6 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5183, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_6; - + /* "talib/_func.pxi":5183 + * close = check_array(close) + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) + */ + __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_begidx3(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)), ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close))); if (unlikely(__pyx_t_3 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5183, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_3; + + /* "talib/_func.pxi":5184 + * length = check_length3(high, low, close) + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5185 + * begidx = check_begidx3(length, (high.data), (low.data), (close.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WILLR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_WILLR_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":5186 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_WILLR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WILLR", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5186, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_4 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L1_error) - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L1_error) - __pyx_t_7 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_7 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5187, __pyx_L1_error) - __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_t_5) + __pyx_v_begidx), (((double *)__pyx_t_4) + __pyx_v_begidx), (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_7) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5187 + * lookback = begidx + lib.TA_WILLR_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WILLR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WILLR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WILLR(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)) + __pyx_v_begidx), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5188 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WILLR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WILLR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5188, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5189 + * retCode = lib.TA_WILLR( 0 , endidx , (high.data)+begidx , (low.data)+begidx , (close.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WILLR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -48583,6 +61877,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_330WILLR(CYTHON_UNUSED PyObject *__pyx return __pyx_r; } +/* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_333WMA(PyObject *__pyx_self, @@ -48717,50 +62018,113 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332WMA(CYTHON_UNUSED PyObject *__pyx_s PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; - npy_intp *__pyx_t_2; - char *__pyx_t_3; - npy_int __pyx_t_4; - char *__pyx_t_5; + npy_int __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; __Pyx_RefNannySetupContext("WMA", 0); __Pyx_INCREF((PyObject *)__pyx_v_real); + /* "talib/_func.pxi":5212 + * int outnbelement + * np.ndarray outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5212, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); __pyx_t_1 = 0; - __pyx_t_2 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_2 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5213, __pyx_L1_error) - __pyx_v_length = (__pyx_t_2[0]); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L1_error) - __pyx_t_4 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_t_3)); if (unlikely(__pyx_t_4 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L1_error) - __pyx_v_begidx = __pyx_t_4; - + /* "talib/_func.pxi":5213 + * np.ndarray outreal + * real = check_array(real) + * length = real.shape[0] # <<<<<<<<<<<<<< + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_func.pxi":5214 + * real = check_array(real) + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) # <<<<<<<<<<<<<< + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_begidx1(__pyx_v_length, ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real))); if (unlikely(__pyx_t_2 == ((npy_int)-1) && PyErr_Occurred())) __PYX_ERR(3, 5214, __pyx_L1_error) + __pyx_v_begidx = __pyx_t_2; + + /* "talib/_func.pxi":5215 + * length = real.shape[0] + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 # <<<<<<<<<<<<<< + * lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + */ __pyx_v_endidx = ((((int)__pyx_v_length) - __pyx_v_begidx) - 1); + /* "talib/_func.pxi":5216 + * begidx = check_begidx1(length, (real.data)) + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) # <<<<<<<<<<<<<< + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + */ __pyx_v_lookback = (__pyx_v_begidx + TA_WMA_Lookback(__pyx_v_timeperiod)); + /* "talib/_func.pxi":5217 + * endidx = length - begidx - 1 + * lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) # <<<<<<<<<<<<<< + * retCode = lib.TA_WMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WMA", retCode) + */ __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_make_double_array(__pyx_v_length, __pyx_v_lookback)); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5217, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_outreal = ((PyArrayObject *)__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_3 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_3 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5218, __pyx_L1_error) - __pyx_t_5 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal); if (unlikely(__pyx_t_5 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(3, 5218, __pyx_L1_error) - __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_t_3) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_t_5) + __pyx_v_lookback)); - + /* "talib/_func.pxi":5218 + * lookback = begidx + lib.TA_WMA_Lookback( timeperiod ) + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WMA(0, __pyx_v_endidx, (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)) + __pyx_v_begidx), __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_outreal)) + __pyx_v_lookback)); + + /* "talib/_func.pxi":5219 + * outreal = make_double_array(length, lookback) + * retCode = lib.TA_WMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(3, 5219, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_func.pxi":5220 + * retCode = lib.TA_WMA( 0 , endidx , (real.data)+begidx , timeperiod , &outbegidx , &outnbelement , (outreal.data)+lookback ) + * _ta_check_success("TA_WMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * __TA_FUNCTION_NAMES__ = ["ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","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","CMO","CORREL","COS","COSH","DEMA","DIV","DX","EMA","EXP","FLOOR","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","KAMA","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MAVP","MAX","MAXINDEX","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","OBV","PLUS_DI","PLUS_DM","PPO","ROC","ROCP","ROCR","ROCR100","RSI","SAR","SAREXT","SIN","SINH","SMA","SQRT","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TYPPRICE","ULTOSC","VAR","WCLPRICE","WILLR","WMA"] + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF((PyObject *)__pyx_v_outreal); __pyx_r = ((PyObject *)__pyx_v_outreal); goto __pyx_L0; + /* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ /* function exit code */ __pyx_L1_error:; @@ -48775,6 +62139,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_332WMA(CYTHON_UNUSED PyObject *__pyx_s return __pyx_r; } +/* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_335str2bytes(PyObject *__pyx_self, @@ -48882,6 +62253,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334str2bytes(CYTHON_UNUSED PyObject *_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("str2bytes", 1); + /* "talib/_abstract.pxi":75 + * + * def str2bytes(s): + * return bytes(s, 'ascii') # <<<<<<<<<<<<<< + * + * def bytes2str(b): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 75, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -48898,6 +62276,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334str2bytes(CYTHON_UNUSED PyObject *_ __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ /* function exit code */ __pyx_L1_error:; @@ -48911,6 +62296,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_334str2bytes(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_337bytes2str(PyObject *__pyx_self, @@ -49020,6 +62412,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336bytes2str(CYTHON_UNUSED PyObject *_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("bytes2str", 1); + /* "talib/_abstract.pxi":78 + * + * def bytes2str(b): + * return b.decode('ascii') # <<<<<<<<<<<<<< + * + * else: + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_b, __pyx_n_s_decode); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 78, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -49049,6 +62448,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336bytes2str(CYTHON_UNUSED PyObject *_ __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ /* function exit code */ __pyx_L1_error:; @@ -49063,6 +62469,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_336bytes2str(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_339str2bytes(PyObject *__pyx_self, @@ -49165,11 +62578,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338str2bytes(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("str2bytes", 1); + /* "talib/_abstract.pxi":83 + * + * def str2bytes(s): + * return s # <<<<<<<<<<<<<< + * + * def bytes2str(b): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_s); __pyx_r = __pyx_v_s; goto __pyx_L0; + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ /* function exit code */ __pyx_L0:; @@ -49178,6 +62605,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_338str2bytes(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_341bytes2str(PyObject *__pyx_self, @@ -49280,11 +62714,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340bytes2str(CYTHON_UNUSED PyObject *_ __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("bytes2str", 1); + /* "talib/_abstract.pxi":86 + * + * def bytes2str(b): + * return b # <<<<<<<<<<<<<< + * + * class Function(object): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_b); __pyx_r = __pyx_v_b; goto __pyx_L0; + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ /* function exit code */ __pyx_L0:; @@ -49293,6 +62741,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_340bytes2str(CYTHON_UNUSED PyObject *_ return __pyx_r; } +/* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_1__init__(PyObject *__pyx_self, @@ -49449,6 +62904,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__init__", 1); + /* "talib/_abstract.pxi":119 + * def __init__(self, function_name, func_object, *args, **kwargs): + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() # <<<<<<<<<<<<<< + * self.__namestr = self.__name + * self.__name = str2bytes(self.__name) + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_function_name, __pyx_n_s_upper); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; @@ -49476,11 +62938,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__name, __pyx_t_1) < 0) __PYX_ERR(1, 119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":120 + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + * self.__namestr = self.__name # <<<<<<<<<<<<<< + * self.__name = str2bytes(self.__name) + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__namestr, __pyx_t_1) < 0) __PYX_ERR(1, 120, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":121 + * self.__name = function_name.upper() + * self.__namestr = self.__name + * self.__name = str2bytes(self.__name) # <<<<<<<<<<<<<< + * + * # thread-local storage + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_str2bytes); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 121, __pyx_L1_error) @@ -49511,6 +62987,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__name, __pyx_t_1) < 0) __PYX_ERR(1, 121, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":124 + * + * # thread-local storage + * self.__localdata = threading.local() # <<<<<<<<<<<<<< + * + * # finish initializing: query the TALIB abstract interface and set arguments + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_threading); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_local); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 124, __pyx_L1_error) @@ -49541,6 +63024,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_Function__localdata, __pyx_t_1) < 0) __PYX_ERR(1, 124, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":127 + * + * # finish initializing: query the TALIB abstract interface and set arguments + * self.set_function_args(*args, **kwargs) # <<<<<<<<<<<<<< + * self.func_object = func_object + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = PyDict_Copy(__pyx_v_kwargs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 127, __pyx_L1_error) @@ -49551,8 +63041,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":128 + * # finish initializing: query the TALIB abstract interface and set arguments + * self.set_function_args(*args, **kwargs) + * self.func_object = func_object # <<<<<<<<<<<<<< + * + * @property + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_func_object, __pyx_v_func_object) < 0) __PYX_ERR(1, 128, __pyx_L1_error) + /* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -49570,6 +63074,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function___init__(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_3__local(PyObject *__pyx_self, @@ -49691,22 +63202,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__local", 1); + /* "talib/_abstract.pxi":132 + * @property + * def __local(self): + * local = self.__localdata # <<<<<<<<<<<<<< + * if not hasattr(local, 'info'): + * local.info = None + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__localdata); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 132, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":133 + * def __local(self): + * local = self.__localdata + * if not hasattr(local, 'info'): # <<<<<<<<<<<<<< + * local.info = None + * local.input_arrays = {} + */ __pyx_t_2 = __Pyx_HasAttr(__pyx_v_local, __pyx_n_s_info); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(1, 133, __pyx_L1_error) __pyx_t_3 = (!__pyx_t_2); if (__pyx_t_3) { + /* "talib/_abstract.pxi":134 + * local = self.__localdata + * if not hasattr(local, 'info'): + * local.info = None # <<<<<<<<<<<<<< + * local.input_arrays = {} + * + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_info, Py_None) < 0) __PYX_ERR(1, 134, __pyx_L1_error) + /* "talib/_abstract.pxi":135 + * if not hasattr(local, 'info'): + * local.info = None + * local.input_arrays = {} # <<<<<<<<<<<<<< + * + * # dictionaries of function args. keys are input/opt_input/output parameter names + */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 135, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays, __pyx_t_1) < 0) __PYX_ERR(1, 135, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":138 + * + * # dictionaries of function args. keys are input/opt_input/output parameter names + * local.input_names = OrderedDict() # <<<<<<<<<<<<<< + * local.opt_inputs = OrderedDict() + * local.outputs = OrderedDict() + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; @@ -49734,6 +63280,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_input_names, __pyx_t_1) < 0) __PYX_ERR(1, 138, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":139 + * # dictionaries of function args. keys are input/opt_input/output parameter names + * local.input_names = OrderedDict() + * local.opt_inputs = OrderedDict() # <<<<<<<<<<<<<< + * local.outputs = OrderedDict() + * local.outputs_valid = False + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; @@ -49761,6 +63314,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs, __pyx_t_1) < 0) __PYX_ERR(1, 139, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":140 + * local.input_names = OrderedDict() + * local.opt_inputs = OrderedDict() + * local.outputs = OrderedDict() # <<<<<<<<<<<<<< + * local.outputs_valid = False + * + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; @@ -49788,8 +63348,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs, __pyx_t_1) < 0) __PYX_ERR(1, 140, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":141 + * local.opt_inputs = OrderedDict() + * local.outputs = OrderedDict() + * local.outputs_valid = False # <<<<<<<<<<<<<< + * + * # function info + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_False) < 0) __PYX_ERR(1, 141, __pyx_L1_error) + /* "talib/_abstract.pxi":144 + * + * # function info + * local.info = _ta_getFuncInfo(self.__name) # <<<<<<<<<<<<<< + * + * # inputs (price series names) + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ta_getFuncInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 144, __pyx_L1_error) @@ -49820,6 +63394,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_info, __pyx_t_1) < 0) __PYX_ERR(1, 144, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":147 + * + * # inputs (price series names) + * for i in xrange(local.info.pop('num_inputs')): # <<<<<<<<<<<<<< + * info = _ta_getInputParameterInfo(self.__name, i) + * input_name = info['name'] + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 147, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_pop); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 147, __pyx_L1_error) @@ -49906,6 +63487,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":148 + * # inputs (price series names) + * for i in xrange(local.info.pop('num_inputs')): + * info = _ta_getInputParameterInfo(self.__name, i) # <<<<<<<<<<<<<< + * input_name = info['name'] + * if info['price_series'] is None: + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ta_getInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 148, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 148, __pyx_L1_error) @@ -49936,17 +63524,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":149 + * for i in xrange(local.info.pop('num_inputs')): + * info = _ta_getInputParameterInfo(self.__name, i) + * input_name = info['name'] # <<<<<<<<<<<<<< + * if info['price_series'] is None: + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + */ __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 149, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":150 + * info = _ta_getInputParameterInfo(self.__name, i) + * input_name = info['name'] + * if info['price_series'] is None: # <<<<<<<<<<<<<< + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + * local.input_names[input_name] = info + */ __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_price_series); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 150, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_3 = (__pyx_t_5 == Py_None); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_3) { + /* "talib/_abstract.pxi":151 + * input_name = info['name'] + * if info['price_series'] is None: + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] # <<<<<<<<<<<<<< + * local.input_names[input_name] = info + * local.info['input_names'] = self.input_names + */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_input_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 151, __pyx_L1_error) @@ -49955,16 +63564,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj if (unlikely((PyObject_SetItem(__pyx_v_info, __pyx_n_s_price_series, __pyx_t_4) < 0))) __PYX_ERR(1, 151, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":150 + * info = _ta_getInputParameterInfo(self.__name, i) + * input_name = info['name'] + * if info['price_series'] is None: # <<<<<<<<<<<<<< + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + * local.input_names[input_name] = info + */ } + /* "talib/_abstract.pxi":152 + * if info['price_series'] is None: + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + * local.input_names[input_name] = info # <<<<<<<<<<<<<< + * local.info['input_names'] = self.input_names + * + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 152, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_input_name, __pyx_v_info) < 0))) __PYX_ERR(1, 152, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":147 + * + * # inputs (price series names) + * for i in xrange(local.info.pop('num_inputs')): # <<<<<<<<<<<<<< + * info = _ta_getInputParameterInfo(self.__name, i) + * input_name = info['name'] + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":153 + * info['price_series'] = __INPUT_PRICE_SERIES_DEFAULTS[input_name] + * local.input_names[input_name] = info + * local.info['input_names'] = self.input_names # <<<<<<<<<<<<<< + * + * # optional inputs (function parameters) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 153, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 153, __pyx_L1_error) @@ -49973,6 +63610,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":156 + * + * # optional inputs (function parameters) + * for i in xrange(local.info.pop('num_opt_inputs')): # <<<<<<<<<<<<<< + * info = _ta_getOptInputParameterInfo(self.__name, i) + * param_name = info['name'] + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 156, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_pop); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 156, __pyx_L1_error) @@ -50059,6 +63703,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":157 + * # optional inputs (function parameters) + * for i in xrange(local.info.pop('num_opt_inputs')): + * info = _ta_getOptInputParameterInfo(self.__name, i) # <<<<<<<<<<<<<< + * param_name = info['name'] + * local.opt_inputs[param_name] = info + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_ta_getOptInputParameterInfo); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 157, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 157, __pyx_L1_error) @@ -50089,19 +63740,47 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":158 + * for i in xrange(local.info.pop('num_opt_inputs')): + * info = _ta_getOptInputParameterInfo(self.__name, i) + * param_name = info['name'] # <<<<<<<<<<<<<< + * local.opt_inputs[param_name] = info + * local.info['parameters'] = self.parameters + */ __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":159 + * info = _ta_getOptInputParameterInfo(self.__name, i) + * param_name = info['name'] + * local.opt_inputs[param_name] = info # <<<<<<<<<<<<<< + * local.info['parameters'] = self.parameters + * + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_v_param_name, __pyx_v_info) < 0))) __PYX_ERR(1, 159, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":156 + * + * # optional inputs (function parameters) + * for i in xrange(local.info.pop('num_opt_inputs')): # <<<<<<<<<<<<<< + * info = _ta_getOptInputParameterInfo(self.__name, i) + * param_name = info['name'] + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":160 + * param_name = info['name'] + * local.opt_inputs[param_name] = info + * local.info['parameters'] = self.parameters # <<<<<<<<<<<<<< + * + * # outputs + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 160, __pyx_L1_error) @@ -50110,6 +63789,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":163 + * + * # outputs + * local.info['output_flags'] = OrderedDict() # <<<<<<<<<<<<<< + * for i in xrange(local.info.pop('num_outputs')): + * info = _ta_getOutputParameterInfo(self.__name, i) + */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 163, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = NULL; @@ -50140,6 +63826,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":164 + * # outputs + * local.info['output_flags'] = OrderedDict() + * for i in xrange(local.info.pop('num_outputs')): # <<<<<<<<<<<<<< + * info = _ta_getOutputParameterInfo(self.__name, i) + * output_name = info['name'] + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 164, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pop); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 164, __pyx_L1_error) @@ -50226,6 +63919,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":165 + * local.info['output_flags'] = OrderedDict() + * for i in xrange(local.info.pop('num_outputs')): + * info = _ta_getOutputParameterInfo(self.__name, i) # <<<<<<<<<<<<<< + * output_name = info['name'] + * local.info['output_flags'][output_name] = info['flags'] + */ __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ta_getOutputParameterInfo); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 165, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 165, __pyx_L1_error) @@ -50256,11 +63956,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_XDECREF_SET(__pyx_v_info, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":166 + * for i in xrange(local.info.pop('num_outputs')): + * info = _ta_getOutputParameterInfo(self.__name, i) + * output_name = info['name'] # <<<<<<<<<<<<<< + * local.info['output_flags'][output_name] = info['flags'] + * local.outputs[output_name] = None + */ __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 166, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_XDECREF_SET(__pyx_v_output_name, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":167 + * info = _ta_getOutputParameterInfo(self.__name, i) + * output_name = info['name'] + * local.info['output_flags'][output_name] = info['flags'] # <<<<<<<<<<<<<< + * local.outputs[output_name] = None + * local.info['output_names'] = self.output_names + */ __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_info, __pyx_n_s_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 167, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 167, __pyx_L1_error) @@ -50272,14 +63986,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":168 + * output_name = info['name'] + * local.info['output_flags'][output_name] = info['flags'] + * local.outputs[output_name] = None # <<<<<<<<<<<<<< + * local.info['output_names'] = self.output_names + * return local + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (unlikely((PyObject_SetItem(__pyx_t_4, __pyx_v_output_name, Py_None) < 0))) __PYX_ERR(1, 168, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":164 + * # outputs + * local.info['output_flags'] = OrderedDict() + * for i in xrange(local.info.pop('num_outputs')): # <<<<<<<<<<<<<< + * info = _ta_getOutputParameterInfo(self.__name, i) + * output_name = info['name'] + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":169 + * local.info['output_flags'][output_name] = info['flags'] + * local.outputs[output_name] = None + * local.info['output_names'] = self.output_names # <<<<<<<<<<<<<< + * return local + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_output_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 169, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 169, __pyx_L1_error) @@ -50288,13 +64023,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":133 + * def __local(self): + * local = self.__localdata + * if not hasattr(local, 'info'): # <<<<<<<<<<<<<< + * local.info = None + * local.input_arrays = {} + */ } + /* "talib/_abstract.pxi":170 + * local.outputs[output_name] = None + * local.info['output_names'] = self.output_names + * return local # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_local); __pyx_r = __pyx_v_local; goto __pyx_L0; + /* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ /* function exit code */ __pyx_L1_error:; @@ -50317,6 +64073,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_2__local(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_5info(PyObject *__pyx_self, @@ -50427,6 +64190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("info", 1); + /* "talib/_abstract.pxi":177 + * Returns a copy of the function's info dict. + * """ + * return self.__local.info.copy() # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 177, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -50462,6 +64232,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -50476,6 +64253,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_4info(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_7function_flags(PyObject *__pyx_self, @@ -50584,6 +64368,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE int __pyx_clineno = 0; __Pyx_RefNannySetupContext("function_flags", 1); + /* "talib/_abstract.pxi":184 + * Returns any function flags defined for this indicator function. + * """ + * return self.__local.info['function_flags'] # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 184, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -50597,6 +64388,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -50610,6 +64408,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_6function_flags(CYTHON_UNUSE return __pyx_r; } +/* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_9output_flags(PyObject *__pyx_self, @@ -50720,6 +64525,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("output_flags", 1); + /* "talib/_abstract.pxi":191 + * Returns the flags for each output for this indicator function. + * """ + * return self.__local.info['output_flags'].copy() # <<<<<<<<<<<<<< + * + * def get_input_names(self): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -50758,6 +64570,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -50772,6 +64591,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_8output_flags(CYTHON_UNUSED return __pyx_r; } +/* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_11get_input_names(PyObject *__pyx_self, @@ -50887,11 +64713,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_input_names", 1); + /* "talib/_abstract.pxi":198 + * of the ndarrays in input_arrays will be used to calculate the function. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * ret = OrderedDict() + * for input_name in local.input_names: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 198, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":199 + * """ + * local = self.__local + * ret = OrderedDict() # <<<<<<<<<<<<<< + * for input_name in local.input_names: + * ret[input_name] = local.input_names[input_name]['price_series'] + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 199, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; @@ -50919,6 +64759,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":200 + * local = self.__local + * ret = OrderedDict() + * for input_name in local.input_names: # <<<<<<<<<<<<<< + * ret[input_name] = local.input_names[input_name]['price_series'] + * return ret + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 200, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -50977,6 +64824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":201 + * ret = OrderedDict() + * for input_name in local.input_names: + * ret[input_name] = local.input_names[input_name]['price_series'] # <<<<<<<<<<<<<< + * return ret + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 201, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 201, __pyx_L1_error) @@ -50988,14 +64842,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_input_name, __pyx_t_1) < 0))) __PYX_ERR(1, 201, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":200 + * local = self.__local + * ret = OrderedDict() + * for input_name in local.input_names: # <<<<<<<<<<<<<< + * ret[input_name] = local.input_names[input_name]['price_series'] + * return ret + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":202 + * for input_name in local.input_names: + * ret[input_name] = local.input_names[input_name]['price_series'] + * return ret # <<<<<<<<<<<<<< + * + * def set_input_names(self, input_names): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; + /* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ /* function exit code */ __pyx_L1_error:; @@ -51013,6 +64888,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_10get_input_names(CYTHON_UNU return __pyx_r; } +/* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_13set_input_names(PyObject *__pyx_self, @@ -51146,11 +65028,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_input_names", 1); + /* "talib/_abstract.pxi":208 + * Sets the input price series names to use. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * for input_name, price_series in input_names.items(): + * local.input_names[input_name]['price_series'] = price_series + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 208, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":209 + * """ + * local = self.__local + * for input_name, price_series in input_names.items(): # <<<<<<<<<<<<<< + * local.input_names[input_name]['price_series'] = price_series + * local.info['input_names'][input_name] = price_series + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_names, __pyx_n_s_items); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 209, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; @@ -51279,6 +65175,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":210 + * local = self.__local + * for input_name, price_series in input_names.items(): + * local.input_names[input_name]['price_series'] = price_series # <<<<<<<<<<<<<< + * local.info['input_names'][input_name] = price_series + * local.outputs_valid = False + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 210, __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(1, 210, __pyx_L1_error) @@ -51287,6 +65190,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU if (unlikely((PyObject_SetItem(__pyx_t_7, __pyx_n_s_price_series, __pyx_v_price_series) < 0))) __PYX_ERR(1, 210, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":211 + * for input_name, price_series in input_names.items(): + * local.input_names[input_name]['price_series'] = price_series + * local.info['input_names'][input_name] = price_series # <<<<<<<<<<<<<< + * local.outputs_valid = False + * + */ __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 211, __pyx_L1_error) @@ -51295,11 +65205,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_price_series) < 0))) __PYX_ERR(1, 211, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":209 + * """ + * local = self.__local + * for input_name, price_series in input_names.items(): # <<<<<<<<<<<<<< + * local.input_names[input_name]['price_series'] = price_series + * local.info['input_names'][input_name] = price_series + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":212 + * local.input_names[input_name]['price_series'] = price_series + * local.info['input_names'][input_name] = price_series + * local.outputs_valid = False # <<<<<<<<<<<<<< + * + * input_names = property(get_input_names, set_input_names) + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_False) < 0) __PYX_ERR(1, 212, __pyx_L1_error) + /* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -51321,6 +65252,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_12set_input_names(CYTHON_UNU return __pyx_r; } +/* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_15get_input_arrays(PyObject *__pyx_self, @@ -51434,11 +65372,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_input_arrays", 1); + /* "talib/_abstract.pxi":220 + * Returns a copy of the dict of input arrays in use. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * if __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 220, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":221 + * """ + * local = self.__local + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * return local.input_arrays.clone() + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 221, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_t_1 != Py_None); @@ -51449,6 +65401,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN goto __pyx_L4_bool_binop_done; } + /* "talib/_abstract.pxi":222 + * local = self.__local + * if __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): # <<<<<<<<<<<<<< + * return local.input_arrays.clone() + * else: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 222, __pyx_L1_error) @@ -51459,8 +65418,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN __pyx_t_2 = __pyx_t_3; __pyx_L4_bool_binop_done:; + /* "talib/_abstract.pxi":221 + * """ + * local = self.__local + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * return local.input_arrays.clone() + */ if (__pyx_t_2) { + /* "talib/_abstract.pxi":223 + * if __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * return local.input_arrays.clone() # <<<<<<<<<<<<<< + * else: + * return local.input_arrays.copy() + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 223, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -51493,8 +65466,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":221 + * """ + * local = self.__local + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * return local.input_arrays.clone() + */ } + /* "talib/_abstract.pxi":225 + * return local.input_arrays.clone() + * else: + * return local.input_arrays.copy() # <<<<<<<<<<<<<< + * + * def set_input_arrays(self, input_arrays): + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 225, __pyx_L1_error) @@ -51529,6 +65516,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN goto __pyx_L0; } + /* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ /* function exit code */ __pyx_L1_error:; @@ -51544,6 +65538,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_14get_input_arrays(CYTHON_UN return __pyx_r; } +/* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_17set_input_arrays(PyObject *__pyx_self, @@ -51678,22 +65679,50 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_input_arrays", 1); + /* "talib/_abstract.pxi":252 + * return False + * """ + * local = self.__local # <<<<<<<<<<<<<< + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): + * missing_keys = [] + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 252, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":253 + * """ + * local = self.__local + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): # <<<<<<<<<<<<<< + * missing_keys = [] + * for key in self.__input_price_series_names(): + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 253, __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(1, 253, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { + /* "talib/_abstract.pxi":254 + * local = self.__local + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): + * missing_keys = [] # <<<<<<<<<<<<<< + * for key in self.__input_price_series_names(): + * if __POLARS_DATAFRAME is not None \ + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_missing_keys = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":255 + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): + * missing_keys = [] + * for key in self.__input_price_series_names(): # <<<<<<<<<<<<<< + * if __POLARS_DATAFRAME is not None \ + * and isinstance(input_arrays, __POLARS_DATAFRAME): + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_price_series_na); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 255, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; @@ -51774,6 +65803,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":256 + * missing_keys = [] + * for key in self.__input_price_series_names(): + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(input_arrays, __POLARS_DATAFRAME): + * missing = key not in input_arrays.columns + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = (__pyx_t_1 != Py_None); @@ -51784,6 +65820,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN goto __pyx_L7_bool_binop_done; } + /* "talib/_abstract.pxi":257 + * for key in self.__input_price_series_names(): + * if __POLARS_DATAFRAME is not None \ + * and isinstance(input_arrays, __POLARS_DATAFRAME): # <<<<<<<<<<<<<< + * missing = key not in input_arrays.columns + * else: + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 257, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_8 = PyObject_IsInstance(__pyx_v_input_arrays, __pyx_t_1); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 257, __pyx_L1_error) @@ -51791,8 +65834,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __pyx_t_2 = __pyx_t_8; __pyx_L7_bool_binop_done:; + /* "talib/_abstract.pxi":256 + * missing_keys = [] + * for key in self.__input_price_series_names(): + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(input_arrays, __POLARS_DATAFRAME): + * missing = key not in input_arrays.columns + */ if (__pyx_t_2) { + /* "talib/_abstract.pxi":258 + * if __POLARS_DATAFRAME is not None \ + * and isinstance(input_arrays, __POLARS_DATAFRAME): + * missing = key not in input_arrays.columns # <<<<<<<<<<<<<< + * else: + * missing = key not in input_arrays + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_input_arrays, __pyx_n_s_columns); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 258, __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(1, 258, __pyx_L1_error) @@ -51802,9 +65859,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __Pyx_XDECREF_SET(__pyx_v_missing, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":256 + * missing_keys = [] + * for key in self.__input_price_series_names(): + * if __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(input_arrays, __POLARS_DATAFRAME): + * missing = key not in input_arrays.columns + */ goto __pyx_L6; } + /* "talib/_abstract.pxi":260 + * missing = key not in input_arrays.columns + * else: + * missing = key not in input_arrays # <<<<<<<<<<<<<< + * if missing: + * missing_keys.append(key) + */ /*else*/ { __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_v_input_arrays, Py_NE)); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 260, __pyx_L1_error) __pyx_t_1 = __Pyx_PyBool_FromLong(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 260, __pyx_L1_error) @@ -51814,33 +65885,110 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN } __pyx_L6:; + /* "talib/_abstract.pxi":261 + * else: + * missing = key not in input_arrays + * if missing: # <<<<<<<<<<<<<< + * missing_keys.append(key) + * if len(missing_keys) == 0: + */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_missing); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 261, __pyx_L1_error) if (__pyx_t_2) { + /* "talib/_abstract.pxi":262 + * missing = key not in input_arrays + * if missing: + * missing_keys.append(key) # <<<<<<<<<<<<<< + * if len(missing_keys) == 0: + * local.input_arrays = input_arrays + */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_missing_keys, __pyx_v_key); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 262, __pyx_L1_error) + /* "talib/_abstract.pxi":261 + * else: + * missing = key not in input_arrays + * if missing: # <<<<<<<<<<<<<< + * missing_keys.append(key) + * if len(missing_keys) == 0: + */ } + /* "talib/_abstract.pxi":255 + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): + * missing_keys = [] + * for key in self.__input_price_series_names(): # <<<<<<<<<<<<<< + * if __POLARS_DATAFRAME is not None \ + * and isinstance(input_arrays, __POLARS_DATAFRAME): + */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":263 + * if missing: + * missing_keys.append(key) + * if len(missing_keys) == 0: # <<<<<<<<<<<<<< + * local.input_arrays = input_arrays + * local.outputs_valid = False + */ __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 263, __pyx_L1_error) __pyx_t_2 = (__pyx_t_6 == 0); if (likely(__pyx_t_2)) { + /* "talib/_abstract.pxi":264 + * missing_keys.append(key) + * if len(missing_keys) == 0: + * local.input_arrays = input_arrays # <<<<<<<<<<<<<< + * local.outputs_valid = False + * return True + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays, __pyx_v_input_arrays) < 0) __PYX_ERR(1, 264, __pyx_L1_error) + /* "talib/_abstract.pxi":265 + * if len(missing_keys) == 0: + * local.input_arrays = input_arrays + * local.outputs_valid = False # <<<<<<<<<<<<<< + * return True + * else: + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_False) < 0) __PYX_ERR(1, 265, __pyx_L1_error) + /* "talib/_abstract.pxi":266 + * local.input_arrays = input_arrays + * local.outputs_valid = False + * return True # <<<<<<<<<<<<<< + * else: + * raise Exception('input_arrays parameter missing required data '\ + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; + /* "talib/_abstract.pxi":263 + * if missing: + * missing_keys.append(key) + * if len(missing_keys) == 0: # <<<<<<<<<<<<<< + * local.input_arrays = input_arrays + * local.outputs_valid = False + */ } + /* "talib/_abstract.pxi":268 + * return True + * else: + * raise Exception('input_arrays parameter missing required data '\ # <<<<<<<<<<<<<< + * 'key%s: %s' % ('s' if len(missing_keys) > 1 \ + * else '', + */ /*else*/ { + /* "talib/_abstract.pxi":269 + * else: + * raise Exception('input_arrays parameter missing required data '\ + * 'key%s: %s' % ('s' if len(missing_keys) > 1 \ # <<<<<<<<<<<<<< + * else '', + * ', '.join(missing_keys))) + */ __pyx_t_6 = __Pyx_PyList_GET_SIZE(__pyx_v_missing_keys); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 269, __pyx_L1_error) __pyx_t_2 = (__pyx_t_6 > 1); if (__pyx_t_2) { @@ -51851,9 +65999,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __pyx_t_3 = __pyx_kp_s__6; } + /* "talib/_abstract.pxi":271 + * 'key%s: %s' % ('s' if len(missing_keys) > 1 \ + * else '', + * ', '.join(missing_keys))) # <<<<<<<<<<<<<< + * return False + * + */ __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_missing_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + /* "talib/_abstract.pxi":269 + * else: + * raise Exception('input_arrays parameter missing required data '\ + * 'key%s: %s' % ('s' if len(missing_keys) > 1 \ # <<<<<<<<<<<<<< + * else '', + * ', '.join(missing_keys))) + */ __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 269, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GIVEREF(__pyx_t_3); @@ -51866,6 +66028,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":268 + * return True + * else: + * raise Exception('input_arrays parameter missing required data '\ # <<<<<<<<<<<<<< + * 'key%s: %s' % ('s' if len(missing_keys) > 1 \ + * else '', + */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&((PyTypeObject*)PyExc_Exception)[0])), __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 268, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -51874,13 +66043,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN __PYX_ERR(1, 268, __pyx_L1_error) } + /* "talib/_abstract.pxi":253 + * """ + * local = self.__local + * if isinstance(input_arrays, __INPUT_ARRAYS_TYPES): # <<<<<<<<<<<<<< + * missing_keys = [] + * for key in self.__input_price_series_names(): + */ } + /* "talib/_abstract.pxi":272 + * else '', + * ', '.join(missing_keys))) + * return False # <<<<<<<<<<<<<< + * + * input_arrays = property(get_input_arrays, set_input_arrays) + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L0; + /* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ /* function exit code */ __pyx_L1_error:; @@ -51899,6 +66089,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_16set_input_arrays(CYTHON_UN return __pyx_r; } +/* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_19get_parameters(PyObject *__pyx_self, @@ -52015,11 +66212,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS int __pyx_clineno = 0; __Pyx_RefNannySetupContext("get_parameters", 1); + /* "talib/_abstract.pxi":280 + * Returns the function's optional parameters and their default values. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * ret = OrderedDict() + * for opt_input in local.opt_inputs: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 280, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":281 + * """ + * local = self.__local + * ret = OrderedDict() # <<<<<<<<<<<<<< + * for opt_input in local.opt_inputs: + * ret[opt_input] = self.__get_opt_input_value(opt_input) + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 281, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; @@ -52047,6 +66258,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":282 + * local = self.__local + * ret = OrderedDict() + * for opt_input in local.opt_inputs: # <<<<<<<<<<<<<< + * ret[opt_input] = self.__get_opt_input_value(opt_input) + * return ret + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 282, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -52105,6 +66323,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":283 + * ret = OrderedDict() + * for opt_input in local.opt_inputs: + * ret[opt_input] = self.__get_opt_input_value(opt_input) # <<<<<<<<<<<<<< + * return ret + * + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__get_opt_input_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_7 = NULL; @@ -52132,14 +66357,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS if (unlikely((PyObject_SetItem(__pyx_v_ret, __pyx_v_opt_input, __pyx_t_1) < 0))) __PYX_ERR(1, 283, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":282 + * local = self.__local + * ret = OrderedDict() + * for opt_input in local.opt_inputs: # <<<<<<<<<<<<<< + * ret[opt_input] = self.__get_opt_input_value(opt_input) + * return ret + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":284 + * for opt_input in local.opt_inputs: + * ret[opt_input] = self.__get_opt_input_value(opt_input) + * return ret # <<<<<<<<<<<<<< + * + * def set_parameters(self, parameters=None, **kwargs): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; + /* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ /* function exit code */ __pyx_L1_error:; @@ -52158,6 +66404,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_18get_parameters(CYTHON_UNUS return __pyx_r; } +/* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_21set_parameters(PyObject *__pyx_self, @@ -52299,11 +66552,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS __Pyx_RefNannySetupContext("set_parameters", 0); __Pyx_INCREF(__pyx_v_parameters); + /* "talib/_abstract.pxi":290 + * Sets the function parameter values. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * parameters = parameters or {} + * parameters.update(kwargs) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 290, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":291 + * """ + * local = self.__local + * parameters = parameters or {} # <<<<<<<<<<<<<< + * parameters.update(kwargs) + * for param, value in parameters.items(): + */ __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_v_parameters); if (unlikely((__pyx_t_2 < 0))) __PYX_ERR(1, 291, __pyx_L1_error) if (!__pyx_t_2) { } else { @@ -52320,6 +66587,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS __Pyx_DECREF_SET(__pyx_v_parameters, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":292 + * local = self.__local + * parameters = parameters or {} + * parameters.update(kwargs) # <<<<<<<<<<<<<< + * for param, value in parameters.items(): + * if self.__check_opt_input_value(param, value): + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parameters, __pyx_n_s_update); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 292, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; @@ -52346,6 +66620,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":293 + * parameters = parameters or {} + * parameters.update(kwargs) + * for param, value in parameters.items(): # <<<<<<<<<<<<<< + * if self.__check_opt_input_value(param, value): + * local.opt_inputs[param]['value'] = value + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_parameters, __pyx_n_s_items); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 293, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; @@ -52474,6 +66755,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":294 + * parameters.update(kwargs) + * for param, value in parameters.items(): + * if self.__check_opt_input_value(param, value): # <<<<<<<<<<<<<< + * local.opt_inputs[param]['value'] = value + * local.outputs_valid = False + */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__check_opt_input_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 294, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_4 = NULL; @@ -52502,6 +66790,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_2) { + /* "talib/_abstract.pxi":295 + * for param, value in parameters.items(): + * if self.__check_opt_input_value(param, value): + * local.opt_inputs[param]['value'] = value # <<<<<<<<<<<<<< + * local.outputs_valid = False + * local.info['parameters'] = self.parameters + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 295, __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(1, 295, __pyx_L1_error) @@ -52510,13 +66805,41 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS if (unlikely((PyObject_SetItem(__pyx_t_8, __pyx_n_s_value, __pyx_v_value) < 0))) __PYX_ERR(1, 295, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":294 + * parameters.update(kwargs) + * for param, value in parameters.items(): + * if self.__check_opt_input_value(param, value): # <<<<<<<<<<<<<< + * local.opt_inputs[param]['value'] = value + * local.outputs_valid = False + */ } + /* "talib/_abstract.pxi":293 + * parameters = parameters or {} + * parameters.update(kwargs) + * for param, value in parameters.items(): # <<<<<<<<<<<<<< + * if self.__check_opt_input_value(param, value): + * local.opt_inputs[param]['value'] = value + */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":296 + * if self.__check_opt_input_value(param, value): + * local.opt_inputs[param]['value'] = value + * local.outputs_valid = False # <<<<<<<<<<<<<< + * local.info['parameters'] = self.parameters + * + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_False) < 0) __PYX_ERR(1, 296, __pyx_L1_error) + /* "talib/_abstract.pxi":297 + * local.opt_inputs[param]['value'] = value + * local.outputs_valid = False + * local.info['parameters'] = self.parameters # <<<<<<<<<<<<<< + * + * parameters = property(get_parameters, set_parameters) + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 297, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 297, __pyx_L1_error) @@ -52525,6 +66848,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -52547,6 +66877,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_20set_parameters(CYTHON_UNUS return __pyx_r; } +/* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_23set_function_args(PyObject *__pyx_self, @@ -52689,13 +67026,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U int __pyx_clineno = 0; __Pyx_RefNannySetupContext("set_function_args", 1); + /* "talib/_abstract.pxi":305 + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + * """ + * local = self.__local # <<<<<<<<<<<<<< + * update_info = False + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 305, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":306 + * """ + * local = self.__local + * update_info = False # <<<<<<<<<<<<<< + * + * for key in kwargs: + */ __pyx_v_update_info = 0; + /* "talib/_abstract.pxi":308 + * update_info = False + * + * for key in kwargs: # <<<<<<<<<<<<<< + * if key in local.opt_inputs: + * value = kwargs[key] + */ __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(1, 308, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); @@ -52710,17 +67068,38 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_XDECREF_SET(__pyx_v_key, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":309 + * + * for key in kwargs: + * if key in local.opt_inputs: # <<<<<<<<<<<<<< + * value = kwargs[key] + * if self.__check_opt_input_value(key, value): + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 309, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(1, 309, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":310 + * 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] + */ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 310, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":311 + * if key in local.opt_inputs: + * value = kwargs[key] + * if self.__check_opt_input_value(key, value): # <<<<<<<<<<<<<< + * local.opt_inputs[key]['value'] = kwargs[key] + * update_info = True + */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__check_opt_input_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 311, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; @@ -52749,6 +67128,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":312 + * value = kwargs[key] + * if self.__check_opt_input_value(key, value): + * local.opt_inputs[key]['value'] = kwargs[key] # <<<<<<<<<<<<<< + * update_info = True + * elif key in local.input_names: + */ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 312, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 312, __pyx_L1_error) @@ -52760,19 +67146,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":313 + * if self.__check_opt_input_value(key, value): + * local.opt_inputs[key]['value'] = kwargs[key] + * update_info = True # <<<<<<<<<<<<<< + * elif key in local.input_names: + * local.input_names[key]['price_series'] = kwargs[key] + */ __pyx_v_update_info = 1; + /* "talib/_abstract.pxi":311 + * if key in local.opt_inputs: + * value = kwargs[key] + * if self.__check_opt_input_value(key, value): # <<<<<<<<<<<<<< + * local.opt_inputs[key]['value'] = kwargs[key] + * update_info = True + */ } + /* "talib/_abstract.pxi":309 + * + * for key in kwargs: + * if key in local.opt_inputs: # <<<<<<<<<<<<<< + * value = kwargs[key] + * if self.__check_opt_input_value(key, value): + */ goto __pyx_L5; } + /* "talib/_abstract.pxi":314 + * local.opt_inputs[key]['value'] = kwargs[key] + * update_info = True + * elif key in local.input_names: # <<<<<<<<<<<<<< + * local.input_names[key]['price_series'] = kwargs[key] + * local.info['input_names'][key] = kwargs[key] + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_7 = (__Pyx_PySequence_ContainsTF(__pyx_v_key, __pyx_t_5, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(1, 314, __pyx_L1_error) __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":315 + * update_info = True + * elif key in local.input_names: + * local.input_names[key]['price_series'] = kwargs[key] # <<<<<<<<<<<<<< + * local.info['input_names'][key] = kwargs[key] + * + */ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 315, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 315, __pyx_L1_error) @@ -52784,6 +67205,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":316 + * elif key in local.input_names: + * local.input_names[key]['price_series'] = kwargs[key] + * local.info['input_names'][key] = kwargs[key] # <<<<<<<<<<<<<< + * + * if args: + */ __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_kwargs, __pyx_v_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 316, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 316, __pyx_L1_error) @@ -52795,17 +67223,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":314 + * local.opt_inputs[key]['value'] = kwargs[key] + * update_info = True + * elif key in local.input_names: # <<<<<<<<<<<<<< + * local.input_names[key]['price_series'] = kwargs[key] + * local.info['input_names'][key] = kwargs[key] + */ } __pyx_L5:; } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":318 + * local.info['input_names'][key] = kwargs[key] + * + * if args: # <<<<<<<<<<<<<< + * skip_first = 0 + * if self.set_input_arrays(args[0]): + */ __pyx_t_7 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); if (__pyx_t_7) { + /* "talib/_abstract.pxi":319 + * + * if args: + * skip_first = 0 # <<<<<<<<<<<<<< + * if self.set_input_arrays(args[0]): + * skip_first = 1 + */ __Pyx_INCREF(__pyx_int_0); __pyx_v_skip_first = __pyx_int_0; + /* "talib/_abstract.pxi":320 + * if args: + * skip_first = 0 + * if self.set_input_arrays(args[0]): # <<<<<<<<<<<<<< + * skip_first = 1 + * if len(args) > skip_first: + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 320, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_GetItemInt_Tuple(__pyx_v_args, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 320, __pyx_L1_error) @@ -52837,11 +67293,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":321 + * skip_first = 0 + * if self.set_input_arrays(args[0]): + * skip_first = 1 # <<<<<<<<<<<<<< + * if len(args) > skip_first: + * for i, param_name in enumerate(local.opt_inputs): + */ __Pyx_INCREF(__pyx_int_1); __Pyx_DECREF_SET(__pyx_v_skip_first, __pyx_int_1); + /* "talib/_abstract.pxi":320 + * if args: + * skip_first = 0 + * if self.set_input_arrays(args[0]): # <<<<<<<<<<<<<< + * skip_first = 1 + * if len(args) > skip_first: + */ } + /* "talib/_abstract.pxi":322 + * if self.set_input_arrays(args[0]): + * skip_first = 1 + * if len(args) > skip_first: # <<<<<<<<<<<<<< + * for i, param_name in enumerate(local.opt_inputs): + * i += skip_first + */ __pyx_t_3 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_3 == ((Py_ssize_t)-1))) __PYX_ERR(1, 322, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 322, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -52851,6 +67328,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":323 + * skip_first = 1 + * if len(args) > skip_first: + * for i, param_name in enumerate(local.opt_inputs): # <<<<<<<<<<<<<< + * i += skip_first + * if i < len(args): + */ __Pyx_INCREF(__pyx_int_0); __pyx_t_5 = __pyx_int_0; __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 323, __pyx_L1_error) @@ -52918,11 +67402,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __pyx_t_5 = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":324 + * if len(args) > skip_first: + * for i, param_name in enumerate(local.opt_inputs): + * i += skip_first # <<<<<<<<<<<<<< + * if i < len(args): + * value = args[i] + */ __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_i, __pyx_v_skip_first); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 324, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":325 + * 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): + */ __pyx_t_2 = __Pyx_PyTuple_GET_SIZE(__pyx_v_args); if (unlikely(__pyx_t_2 == ((Py_ssize_t)-1))) __PYX_ERR(1, 325, __pyx_L1_error) __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 325, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -52932,11 +67430,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":326 + * i += skip_first + * if i < len(args): + * value = args[i] # <<<<<<<<<<<<<< + * if self.__check_opt_input_value(param_name, value): + * local.opt_inputs[param_name]['value'] = value + */ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_args, __pyx_v_i); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 326, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":327 + * if i < len(args): + * value = args[i] + * if self.__check_opt_input_value(param_name, value): # <<<<<<<<<<<<<< + * local.opt_inputs[param_name]['value'] = value + * update_info = True + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__check_opt_input_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 327, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_12 = NULL; @@ -52965,6 +67477,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; if (__pyx_t_7) { + /* "talib/_abstract.pxi":328 + * value = args[i] + * if self.__check_opt_input_value(param_name, value): + * local.opt_inputs[param_name]['value'] = value # <<<<<<<<<<<<<< + * update_info = True + * + */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 328, __pyx_L1_error) @@ -52973,20 +67492,69 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0))) __PYX_ERR(1, 328, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":329 + * if self.__check_opt_input_value(param_name, value): + * local.opt_inputs[param_name]['value'] = value + * update_info = True # <<<<<<<<<<<<<< + * + * if args or kwargs: + */ __pyx_v_update_info = 1; + /* "talib/_abstract.pxi":327 + * if i < len(args): + * value = args[i] + * if self.__check_opt_input_value(param_name, value): # <<<<<<<<<<<<<< + * local.opt_inputs[param_name]['value'] = value + * update_info = True + */ } + /* "talib/_abstract.pxi":325 + * 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): + */ } + /* "talib/_abstract.pxi":323 + * skip_first = 1 + * if len(args) > skip_first: + * for i, param_name in enumerate(local.opt_inputs): # <<<<<<<<<<<<<< + * i += skip_first + * if i < len(args): + */ } __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":322 + * if self.set_input_arrays(args[0]): + * skip_first = 1 + * if len(args) > skip_first: # <<<<<<<<<<<<<< + * for i, param_name in enumerate(local.opt_inputs): + * i += skip_first + */ } + /* "talib/_abstract.pxi":318 + * local.info['input_names'][key] = kwargs[key] + * + * if args: # <<<<<<<<<<<<<< + * skip_first = 0 + * if self.set_input_arrays(args[0]): + */ } + /* "talib/_abstract.pxi":331 + * update_info = True + * + * if args or kwargs: # <<<<<<<<<<<<<< + * if update_info: + * local.info['parameters'] = self.parameters + */ __pyx_t_13 = (PyTuple_GET_SIZE(__pyx_v_args) != 0); if (!__pyx_t_13) { } else { @@ -52998,8 +67566,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __pyx_L16_bool_binop_done:; if (__pyx_t_7) { + /* "talib/_abstract.pxi":332 + * + * if args or kwargs: + * if update_info: # <<<<<<<<<<<<<< + * local.info['parameters'] = self.parameters + * local.outputs_valid = False + */ if (__pyx_v_update_info) { + /* "talib/_abstract.pxi":333 + * if args or kwargs: + * if update_info: + * local.info['parameters'] = self.parameters # <<<<<<<<<<<<<< + * local.outputs_valid = False + * + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 333, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 333, __pyx_L1_error) @@ -53008,12 +67590,40 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":332 + * + * if args or kwargs: + * if update_info: # <<<<<<<<<<<<<< + * local.info['parameters'] = self.parameters + * local.outputs_valid = False + */ } + /* "talib/_abstract.pxi":334 + * if update_info: + * local.info['parameters'] = self.parameters + * local.outputs_valid = False # <<<<<<<<<<<<<< + * + * @property + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_False) < 0) __PYX_ERR(1, 334, __pyx_L1_error) + /* "talib/_abstract.pxi":331 + * update_info = True + * + * if args or kwargs: # <<<<<<<<<<<<<< + * if update_info: + * local.info['parameters'] = self.parameters + */ } + /* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -53038,6 +67648,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_22set_function_args(CYTHON_U return __pyx_r; } +/* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_25lookback(PyObject *__pyx_self, @@ -53167,11 +67784,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("lookback", 1); + /* "talib/_abstract.pxi":342 + * values that are currently set. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * cdef lib.TA_ParamHolder *holder + * holder = __ta_paramHolderAlloc(self.__name) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 342, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":344 + * local = self.__local + * cdef lib.TA_ParamHolder *holder + * holder = __ta_paramHolderAlloc(self.__name) # <<<<<<<<<<<<<< + * for i, opt_input in enumerate(local.opt_inputs): + * value = self.__get_opt_input_value(opt_input) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 344, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_AsWritableString(__pyx_t_1); if (unlikely((!__pyx_t_2) && PyErr_Occurred())) __PYX_ERR(1, 344, __pyx_L1_error) @@ -53179,6 +67810,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_v_holder = __pyx_t_3; + /* "talib/_abstract.pxi":345 + * cdef lib.TA_ParamHolder *holder + * holder = __ta_paramHolderAlloc(self.__name) + * for i, opt_input in enumerate(local.opt_inputs): # <<<<<<<<<<<<<< + * value = self.__get_opt_input_value(opt_input) + * type_ = local.opt_inputs[opt_input]['type'] + */ __Pyx_INCREF(__pyx_int_0); __pyx_t_1 = __pyx_int_0; __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 345, __pyx_L1_error) @@ -53246,6 +67884,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_t_1 = __pyx_t_4; __pyx_t_4 = 0; + /* "talib/_abstract.pxi":346 + * holder = __ta_paramHolderAlloc(self.__name) + * for i, opt_input in enumerate(local.opt_inputs): + * value = self.__get_opt_input_value(opt_input) # <<<<<<<<<<<<<< + * type_ = local.opt_inputs[opt_input]['type'] + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: + */ __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__get_opt_input_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 346, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_9 = NULL; @@ -53273,6 +67918,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":347 + * for i, opt_input in enumerate(local.opt_inputs): + * value = self.__get_opt_input_value(opt_input) + * type_ = local.opt_inputs[opt_input]['type'] # <<<<<<<<<<<<<< + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: + * __ta_setOptInputParamReal(holder, i, value) + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 347, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_opt_input); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 347, __pyx_L1_error) @@ -53284,6 +67936,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_type_, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":348 + * value = self.__get_opt_input_value(opt_input) + * type_ = local.opt_inputs[opt_input]['type'] + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: # <<<<<<<<<<<<<< + * __ta_setOptInputParamReal(holder, i, value) + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: + */ __pyx_t_4 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 348, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 348, __pyx_L1_error) @@ -53305,13 +67964,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_L6_bool_binop_done:; if (__pyx_t_11) { + /* "talib/_abstract.pxi":349 + * type_ = local.opt_inputs[opt_input]['type'] + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: + * __ta_setOptInputParamReal(holder, i, value) # <<<<<<<<<<<<<< + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: + * __ta_setOptInputParamInteger(holder, i, value) + */ __pyx_t_13 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L1_error) __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_v_value); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L1_error) __pyx_t_15 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(__pyx_v_holder, __pyx_t_13, __pyx_t_14); if (unlikely(__pyx_t_15 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 349, __pyx_L1_error) + /* "talib/_abstract.pxi":348 + * value = self.__get_opt_input_value(opt_input) + * type_ = local.opt_inputs[opt_input]['type'] + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: # <<<<<<<<<<<<<< + * __ta_setOptInputParamReal(holder, i, value) + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: + */ goto __pyx_L5; } + /* "talib/_abstract.pxi":350 + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: + * __ta_setOptInputParamReal(holder, i, value) + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: # <<<<<<<<<<<<<< + * __ta_setOptInputParamInteger(holder, i, value) + * + */ __pyx_t_4 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerRange); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 350, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_8 = PyObject_RichCompare(__pyx_v_type_, __pyx_t_4, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 350, __pyx_L1_error) @@ -53333,22 +68013,64 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_L8_bool_binop_done:; if (__pyx_t_11) { + /* "talib/_abstract.pxi":351 + * __ta_setOptInputParamReal(holder, i, value) + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: + * __ta_setOptInputParamInteger(holder, i, value) # <<<<<<<<<<<<<< + * + * lookback = __ta_getLookback(holder) + */ __pyx_t_15 = __Pyx_PyInt_As_int(__pyx_v_i); if (unlikely((__pyx_t_15 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 351, __pyx_L1_error) __pyx_t_13 = __Pyx_PyInt_As_int(__pyx_v_value); if (unlikely((__pyx_t_13 == (int)-1) && PyErr_Occurred())) __PYX_ERR(1, 351, __pyx_L1_error) __pyx_t_16 = __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(__pyx_v_holder, __pyx_t_15, __pyx_t_13); if (unlikely(__pyx_t_16 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 351, __pyx_L1_error) + /* "talib/_abstract.pxi":350 + * if type_ == lib.TA_OptInput_RealRange or type_ == lib.TA_OptInput_RealList: + * __ta_setOptInputParamReal(holder, i, value) + * elif type_ == lib.TA_OptInput_IntegerRange or type_ == lib.TA_OptInput_IntegerList: # <<<<<<<<<<<<<< + * __ta_setOptInputParamInteger(holder, i, value) + * + */ } __pyx_L5:; + /* "talib/_abstract.pxi":345 + * cdef lib.TA_ParamHolder *holder + * holder = __ta_paramHolderAlloc(self.__name) + * for i, opt_input in enumerate(local.opt_inputs): # <<<<<<<<<<<<<< + * value = self.__get_opt_input_value(opt_input) + * type_ = local.opt_inputs[opt_input]['type'] + */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":353 + * __ta_setOptInputParamInteger(holder, i, value) + * + * lookback = __ta_getLookback(holder) # <<<<<<<<<<<<<< + * __ta_paramHolderFree(holder) + * return lookback + */ __pyx_t_16 = __pyx_f_5talib_7_ta_lib___ta_getLookback(__pyx_v_holder); if (unlikely(__pyx_t_16 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 353, __pyx_L1_error) __pyx_v_lookback = __pyx_t_16; + /* "talib/_abstract.pxi":354 + * + * lookback = __ta_getLookback(holder) + * __ta_paramHolderFree(holder) # <<<<<<<<<<<<<< + * return lookback + * + */ __pyx_t_16 = __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(__pyx_v_holder); if (unlikely(__pyx_t_16 == ((int)-1) && PyErr_Occurred())) __PYX_ERR(1, 354, __pyx_L1_error) + /* "talib/_abstract.pxi":355 + * lookback = __ta_getLookback(holder) + * __ta_paramHolderFree(holder) + * return lookback # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_lookback); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 355, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -53356,6 +68078,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO __pyx_t_1 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -53377,6 +68106,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_24lookback(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_27output_names(PyObject *__pyx_self, @@ -53490,6 +68226,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("output_names", 1); + /* "talib/_abstract.pxi":362 + * Returns a list of the output names returned by this function. + * """ + * ret = self.__local.outputs.keys() # <<<<<<<<<<<<<< + * if not isinstance(ret, list): + * ret = list(ret) + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 362, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_outputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 362, __pyx_L1_error) @@ -53523,22 +68266,57 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":363 + * """ + * ret = self.__local.outputs.keys() + * if not isinstance(ret, list): # <<<<<<<<<<<<<< + * ret = list(ret) + * return ret + */ __pyx_t_5 = PyList_Check(__pyx_v_ret); __pyx_t_6 = (!__pyx_t_5); if (__pyx_t_6) { + /* "talib/_abstract.pxi":364 + * ret = self.__local.outputs.keys() + * if not isinstance(ret, list): + * ret = list(ret) # <<<<<<<<<<<<<< + * return ret + * + */ __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 364, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":363 + * """ + * ret = self.__local.outputs.keys() + * if not isinstance(ret, list): # <<<<<<<<<<<<<< + * ret = list(ret) + * return ret + */ } + /* "talib/_abstract.pxi":365 + * if not isinstance(ret, list): + * ret = list(ret) + * return ret # <<<<<<<<<<<<<< + * + * @property + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -53554,6 +68332,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_26output_names(CYTHON_UNUSED return __pyx_r; } +/* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_29outputs(PyObject *__pyx_self, @@ -53671,11 +68456,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("outputs", 1); + /* "talib/_abstract.pxi":374 + * or a list of ndarrays for more than one output. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * if not local.outputs_valid: + * self.__call_function() + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 374, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":375 + * """ + * local = self.__local + * if not local.outputs_valid: # <<<<<<<<<<<<<< + * self.__call_function() + * ret = local.outputs.values() + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 375, __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(1, 375, __pyx_L1_error) @@ -53683,6 +68482,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_t_3 = (!__pyx_t_2); if (__pyx_t_3) { + /* "talib/_abstract.pxi":376 + * local = self.__local + * if not local.outputs_valid: + * self.__call_function() # <<<<<<<<<<<<<< + * ret = local.outputs.values() + * if not isinstance(ret, list): + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 376, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = NULL; @@ -53709,8 +68515,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":375 + * """ + * local = self.__local + * if not local.outputs_valid: # <<<<<<<<<<<<<< + * self.__call_function() + * ret = local.outputs.values() + */ } + /* "talib/_abstract.pxi":377 + * if not local.outputs_valid: + * self.__call_function() + * ret = local.outputs.values() # <<<<<<<<<<<<<< + * if not isinstance(ret, list): + * ret = list(ret) + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 377, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_values); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 377, __pyx_L1_error) @@ -53741,17 +68561,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_v_ret = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":378 + * self.__call_function() + * ret = local.outputs.values() + * if not isinstance(ret, list): # <<<<<<<<<<<<<< + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ + */ __pyx_t_3 = PyList_Check(__pyx_v_ret); __pyx_t_2 = (!__pyx_t_3); if (__pyx_t_2) { + /* "talib/_abstract.pxi":379 + * ret = local.outputs.values() + * if not isinstance(ret, list): + * ret = list(ret) # <<<<<<<<<<<<<< + * if __PANDAS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + */ __pyx_t_1 = PySequence_List(__pyx_v_ret); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 379, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_ret, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":378 + * self.__call_function() + * ret = local.outputs.values() + * if not isinstance(ret, list): # <<<<<<<<<<<<<< + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ + */ } + /* "talib/_abstract.pxi":380 + * if not isinstance(ret, list): + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 380, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = (__pyx_t_1 != Py_None); @@ -53762,6 +68610,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb goto __pyx_L6_bool_binop_done; } + /* "talib/_abstract.pxi":381 + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): # <<<<<<<<<<<<<< + * index = local.input_arrays.index + * if len(ret) == 1: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 381, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 381, __pyx_L1_error) @@ -53772,8 +68627,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_t_2 = __pyx_t_3; __pyx_L6_bool_binop_done:; + /* "talib/_abstract.pxi":380 + * if not isinstance(ret, list): + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index + */ if (__pyx_t_2) { + /* "talib/_abstract.pxi":382 + * if __PANDAS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index # <<<<<<<<<<<<<< + * if len(ret) == 1: + * return __PANDAS_SERIES(ret[0], index=index) + */ __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 382, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 382, __pyx_L1_error) @@ -53782,10 +68651,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_v_index = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":383 + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index + * if len(ret) == 1: # <<<<<<<<<<<<<< + * return __PANDAS_SERIES(ret[0], index=index) + * else: + */ __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 383, __pyx_L1_error) __pyx_t_2 = (__pyx_t_7 == 1); if (__pyx_t_2) { + /* "talib/_abstract.pxi":384 + * index = local.input_arrays.index + * if len(ret) == 1: + * return __PANDAS_SERIES(ret[0], index=index) # <<<<<<<<<<<<<< + * else: + * return __PANDAS_DATAFRAME(numpy.column_stack(ret), + */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 384, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -53808,8 +68691,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_t_8 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":383 + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index + * if len(ret) == 1: # <<<<<<<<<<<<<< + * return __PANDAS_SERIES(ret[0], index=index) + * else: + */ } + /* "talib/_abstract.pxi":386 + * return __PANDAS_SERIES(ret[0], index=index) + * else: + * return __PANDAS_DATAFRAME(numpy.column_stack(ret), # <<<<<<<<<<<<<< + * index=index, + * columns=self.output_names) + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 386, __pyx_L1_error) @@ -53847,15 +68744,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb if (__Pyx_PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_5)) __PYX_ERR(1, 386, __pyx_L1_error); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":387 + * else: + * return __PANDAS_DATAFRAME(numpy.column_stack(ret), + * index=index, # <<<<<<<<<<<<<< + * columns=self.output_names) + * elif __POLARS_DATAFRAME is not None and \ + */ __pyx_t_5 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 387, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_5); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_index, __pyx_v_index) < 0) __PYX_ERR(1, 387, __pyx_L1_error) + /* "talib/_abstract.pxi":388 + * return __PANDAS_DATAFRAME(numpy.column_stack(ret), + * index=index, + * columns=self.output_names) # <<<<<<<<<<<<<< + * elif __POLARS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_output_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 388, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_columns, __pyx_t_4) < 0) __PYX_ERR(1, 387, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":386 + * return __PANDAS_SERIES(ret[0], index=index) + * else: + * return __PANDAS_DATAFRAME(numpy.column_stack(ret), # <<<<<<<<<<<<<< + * index=index, + * columns=self.output_names) + */ __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 386, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; @@ -53866,8 +68784,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb goto __pyx_L0; } + /* "talib/_abstract.pxi":380 + * if not isinstance(ret, list): + * ret = list(ret) + * if __PANDAS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * index = local.input_arrays.index + */ } + /* "talib/_abstract.pxi":389 + * index=index, + * columns=self.output_names) + * elif __POLARS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 389, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = (__pyx_t_4 != Py_None); @@ -53878,6 +68810,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb goto __pyx_L9_bool_binop_done; } + /* "talib/_abstract.pxi":390 + * columns=self.output_names) + * elif __POLARS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __POLARS_DATAFRAME): # <<<<<<<<<<<<<< + * if len(ret) == 1: + * return __POLARS_SERIES(ret[0]) + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 390, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 390, __pyx_L1_error) @@ -53888,12 +68827,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_t_2 = __pyx_t_3; __pyx_L9_bool_binop_done:; + /* "talib/_abstract.pxi":389 + * index=index, + * columns=self.output_names) + * elif __POLARS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: + */ if (__pyx_t_2) { + /* "talib/_abstract.pxi":391 + * elif __POLARS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: # <<<<<<<<<<<<<< + * return __POLARS_SERIES(ret[0]) + * else: + */ __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 391, __pyx_L1_error) __pyx_t_2 = (__pyx_t_7 == 1); if (__pyx_t_2) { + /* "talib/_abstract.pxi":392 + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: + * return __POLARS_SERIES(ret[0]) # <<<<<<<<<<<<<< + * else: + * return __POLARS_DATAFRAME(numpy.column_stack(ret), + */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 392, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); @@ -53926,8 +68886,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb __pyx_t_5 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":391 + * elif __POLARS_DATAFRAME is not None and \ + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: # <<<<<<<<<<<<<< + * return __POLARS_SERIES(ret[0]) + * else: + */ } + /* "talib/_abstract.pxi":394 + * return __POLARS_SERIES(ret[0]) + * else: + * return __POLARS_DATAFRAME(numpy.column_stack(ret), # <<<<<<<<<<<<<< + * schema=self.output_names) + * else: + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 394, __pyx_L1_error) @@ -53965,6 +68939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb if (__Pyx_PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4)) __PYX_ERR(1, 394, __pyx_L1_error); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":395 + * else: + * return __POLARS_DATAFRAME(numpy.column_stack(ret), + * schema=self.output_names) # <<<<<<<<<<<<<< + * else: + * return ret[0] if len(ret) == 1 else ret + */ __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 395, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_output_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 395, __pyx_L1_error) @@ -53972,6 +68953,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_schema, __pyx_t_1) < 0) __PYX_ERR(1, 395, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":394 + * return __POLARS_SERIES(ret[0]) + * else: + * return __POLARS_DATAFRAME(numpy.column_stack(ret), # <<<<<<<<<<<<<< + * schema=self.output_names) + * else: + */ __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 394, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; @@ -53982,8 +68970,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb goto __pyx_L0; } + /* "talib/_abstract.pxi":389 + * index=index, + * columns=self.output_names) + * elif __POLARS_DATAFRAME is not None and \ # <<<<<<<<<<<<<< + * isinstance(local.input_arrays, __POLARS_DATAFRAME): + * if len(ret) == 1: + */ } + /* "talib/_abstract.pxi":397 + * schema=self.output_names) + * else: + * return ret[0] if len(ret) == 1 else ret # <<<<<<<<<<<<<< + * + * def run(self, input_arrays=None): + */ /*else*/ { __Pyx_XDECREF(__pyx_r); __pyx_t_7 = PyObject_Length(__pyx_v_ret); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 397, __pyx_L1_error) @@ -54002,6 +69004,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb goto __pyx_L0; } + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ /* function exit code */ __pyx_L1_error:; @@ -54020,6 +69029,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_28outputs(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_31run(PyObject *__pyx_self, @@ -54147,9 +69163,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("run", 1); + /* "talib/_abstract.pxi":406 + * the input_arrays dict. + * """ + * if input_arrays: # <<<<<<<<<<<<<< + * self.set_input_arrays(input_arrays) + * self.__call_function() + */ __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_v_input_arrays); if (unlikely((__pyx_t_1 < 0))) __PYX_ERR(1, 406, __pyx_L1_error) if (__pyx_t_1) { + /* "talib/_abstract.pxi":407 + * """ + * if input_arrays: + * self.set_input_arrays(input_arrays) # <<<<<<<<<<<<<< + * self.__call_function() + * return self.outputs + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 407, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; @@ -54176,8 +69206,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":406 + * the input_arrays dict. + * """ + * if input_arrays: # <<<<<<<<<<<<<< + * self.set_input_arrays(input_arrays) + * self.__call_function() + */ } + /* "talib/_abstract.pxi":408 + * if input_arrays: + * self.set_input_arrays(input_arrays) + * self.__call_function() # <<<<<<<<<<<<<< + * return self.outputs + * + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 408, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = NULL; @@ -54204,6 +69248,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":409 + * self.set_input_arrays(input_arrays) + * self.__call_function() + * return self.outputs # <<<<<<<<<<<<<< + * + * def __call__(self, *args, **kwargs): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 409, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -54211,6 +69262,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ /* function exit code */ __pyx_L1_error:; @@ -54225,6 +69283,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_30run(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_33__call__(PyObject *__pyx_self, @@ -54381,14 +69446,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_RefNannySetupContext("__call__", 0); __Pyx_INCREF(__pyx_v_args); + /* "talib/_abstract.pxi":418 + * the input_arrays dict and function parameters. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * # do not cache ta-func parameters passed to __call__ + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":420 + * local = self.__local + * # do not cache ta-func parameters passed to __call__ + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) # <<<<<<<<<<<<<< + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + /* "talib/_abstract.pxi":421 + * # do not cache ta-func parameters passed to __call__ + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) + * for param_name in local.opt_inputs.keys()] # <<<<<<<<<<<<<< + * price_series_name_values = [(n, local.input_names[n]['price_series']) + * for n in local.input_names] + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 421, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 421, __pyx_L1_error) @@ -54472,6 +69558,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_param_name, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":420 + * local = self.__local + * # do not cache ta-func parameters passed to __call__ + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) # <<<<<<<<<<<<<< + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 420, __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(1, 420, __pyx_L1_error) @@ -54491,14 +69584,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_3))) __PYX_ERR(1, 420, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":421 + * # do not cache ta-func parameters passed to __call__ + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) + * for param_name in local.opt_inputs.keys()] # <<<<<<<<<<<<<< + * price_series_name_values = [(n, local.input_names[n]['price_series']) + * for n in local.input_names] + */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __pyx_v_opt_input_values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":422 + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) # <<<<<<<<<<<<<< + * for n in local.input_names] + * + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + /* "talib/_abstract.pxi":423 + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) + * for n in local.input_names] # <<<<<<<<<<<<<< + * + * # allow calling with same signature as talib.func module functions + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 423, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) { @@ -54557,6 +69671,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_n, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":422 + * opt_input_values = [(param_name, local.opt_inputs[param_name]['value']) + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) # <<<<<<<<<<<<<< + * for n in local.input_names] + * + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 422, __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(1, 422, __pyx_L1_error) @@ -54576,21 +69697,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_t_2))) __PYX_ERR(1, 422, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":423 + * for param_name in local.opt_inputs.keys()] + * price_series_name_values = [(n, local.input_names[n]['price_series']) + * for n in local.input_names] # <<<<<<<<<<<<<< + * + * # allow calling with same signature as talib.func module functions + */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_price_series_name_values = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":426 + * + * # allow calling with same signature as talib.func module functions + * args = list(args) # <<<<<<<<<<<<<< + * input_arrays = {} + * input_price_series_names = self.__input_price_series_names() + */ __pyx_t_1 = PySequence_List(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 426, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":427 + * # allow calling with same signature as talib.func module functions + * args = list(args) + * input_arrays = {} # <<<<<<<<<<<<<< + * input_price_series_names = self.__input_price_series_names() + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 427, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_input_arrays = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":428 + * args = list(args) + * input_arrays = {} + * input_price_series_names = self.__input_price_series_names() # <<<<<<<<<<<<<< + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + * for i, arg in enumerate(args): + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_price_series_na); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 428, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_2 = NULL; @@ -54618,6 +69767,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_v_input_price_series_names = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":429 + * input_arrays = {} + * input_price_series_names = self.__input_price_series_names() + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): # <<<<<<<<<<<<<< + * for i, arg in enumerate(args): + * if not isinstance(arg, __ARRAY_TYPES): + */ __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_v_args); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(1, 429, __pyx_L1_error) if (__pyx_t_9) { } else { @@ -54636,6 +69792,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_L10_bool_binop_done:; if (__pyx_t_8) { + /* "talib/_abstract.pxi":430 + * input_price_series_names = self.__input_price_series_names() + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + * for i, arg in enumerate(args): # <<<<<<<<<<<<<< + * if not isinstance(arg, __ARRAY_TYPES): + * break + */ __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; if (likely(PyList_CheckExact(__pyx_v_args)) || PyTuple_CheckExact(__pyx_v_args)) { @@ -54700,6 +69863,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_3 = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":431 + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + * for i, arg in enumerate(args): + * if not isinstance(arg, __ARRAY_TYPES): # <<<<<<<<<<<<<< + * break + * + */ __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 431, __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(1, 431, __pyx_L1_error) @@ -54707,10 +69877,31 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_10 = (!__pyx_t_8); if (__pyx_t_10) { + /* "talib/_abstract.pxi":432 + * for i, arg in enumerate(args): + * if not isinstance(arg, __ARRAY_TYPES): + * break # <<<<<<<<<<<<<< + * + * try: + */ goto __pyx_L13_break; + /* "talib/_abstract.pxi":431 + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + * for i, arg in enumerate(args): + * if not isinstance(arg, __ARRAY_TYPES): # <<<<<<<<<<<<<< + * break + * + */ } + /* "talib/_abstract.pxi":434 + * break + * + * try: # <<<<<<<<<<<<<< + * input_arrays[input_price_series_names[i]] = arg + * except IndexError: + */ { __Pyx_PyThreadState_declare __Pyx_PyThreadState_assign @@ -54720,11 +69911,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XGOTREF(__pyx_t_13); /*try:*/ { + /* "talib/_abstract.pxi":435 + * + * try: + * input_arrays[input_price_series_names[i]] = arg # <<<<<<<<<<<<<< + * except IndexError: + * msg = 'Too many price arguments: expected %d (%s)' % ( + */ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_input_price_series_names, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 435, __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(1, 435, __pyx_L15_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":434 + * break + * + * try: # <<<<<<<<<<<<<< + * input_arrays[input_price_series_names[i]] = arg + * except IndexError: + */ } __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0; __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0; @@ -54734,6 +69939,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":436 + * try: + * input_arrays[input_price_series_names[i]] = arg + * except IndexError: # <<<<<<<<<<<<<< + * msg = 'Too many price arguments: expected %d (%s)' % ( + * len(input_price_series_names), + */ __pyx_t_14 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_IndexError); if (__pyx_t_14) { __Pyx_AddTraceback("talib._ta_lib.Function.__call__", __pyx_clineno, __pyx_lineno, __pyx_filename); @@ -54742,13 +69954,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XGOTREF(__pyx_t_4); __Pyx_XGOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":438 + * except IndexError: + * msg = 'Too many price arguments: expected %d (%s)' % ( + * len(input_price_series_names), # <<<<<<<<<<<<<< + * ', '.join(input_price_series_names)) + * raise TypeError(msg) + */ __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 438, __pyx_L17_except_error) __pyx_t_17 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(1, 438, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_17); + /* "talib/_abstract.pxi":439 + * msg = 'Too many price arguments: expected %d (%s)' % ( + * len(input_price_series_names), + * ', '.join(input_price_series_names)) # <<<<<<<<<<<<<< + * raise TypeError(msg) + * + */ __pyx_t_18 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 439, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":438 + * except IndexError: + * msg = 'Too many price arguments: expected %d (%s)' % ( + * len(input_price_series_names), # <<<<<<<<<<<<<< + * ', '.join(input_price_series_names)) + * raise TypeError(msg) + */ __pyx_t_19 = PyTuple_New(2); if (unlikely(!__pyx_t_19)) __PYX_ERR(1, 438, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_19); __Pyx_GIVEREF(__pyx_t_17); @@ -54758,12 +69991,26 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_17 = 0; __pyx_t_18 = 0; + /* "talib/_abstract.pxi":437 + * input_arrays[input_price_series_names[i]] = arg + * except IndexError: + * msg = 'Too many price arguments: expected %d (%s)' % ( # <<<<<<<<<<<<<< + * len(input_price_series_names), + * ', '.join(input_price_series_names)) + */ __pyx_t_18 = __Pyx_PyString_Format(__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_t_19); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 437, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":440 + * len(input_price_series_names), + * ', '.join(input_price_series_names)) + * raise TypeError(msg) # <<<<<<<<<<<<<< + * + * if __PANDAS_DATAFRAME is not None \ + */ __pyx_t_18 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 440, __pyx_L17_except_error) __Pyx_GOTREF(__pyx_t_18); __Pyx_Raise(__pyx_t_18, 0, 0, 0); @@ -54772,6 +70019,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } goto __pyx_L17_except_error; + /* "talib/_abstract.pxi":434 + * break + * + * try: # <<<<<<<<<<<<<< + * input_arrays[input_price_series_names[i]] = arg + * except IndexError: + */ __pyx_L17_except_error:; __Pyx_XGIVEREF(__pyx_t_11); __Pyx_XGIVEREF(__pyx_t_12); @@ -54781,6 +70035,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_L22_try_end:; } + /* "talib/_abstract.pxi":430 + * input_price_series_names = self.__input_price_series_names() + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): + * for i, arg in enumerate(args): # <<<<<<<<<<<<<< + * if not isinstance(arg, __ARRAY_TYPES): + * break + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; goto __pyx_L25_for_end; @@ -54790,8 +70051,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_L25_for_end:; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":429 + * input_arrays = {} + * input_price_series_names = self.__input_price_series_names() + * if args and not isinstance(args[0], __INPUT_ARRAYS_TYPES): # <<<<<<<<<<<<<< + * for i, arg in enumerate(args): + * if not isinstance(arg, __ARRAY_TYPES): + */ } + /* "talib/_abstract.pxi":442 + * raise TypeError(msg) + * + * if __PANDAS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 442, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__pyx_t_3 != Py_None); @@ -54802,6 +70077,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO goto __pyx_L27_bool_binop_done; } + /* "talib/_abstract.pxi":443 + * + * if __PANDAS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): # <<<<<<<<<<<<<< + * no_existing_input_arrays = local.input_arrays.empty + * elif __POLARS_DATAFRAME is not None \ + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 443, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_PANDAS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 443, __pyx_L1_error) @@ -54812,8 +70094,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_10 = __pyx_t_8; __pyx_L27_bool_binop_done:; + /* "talib/_abstract.pxi":442 + * raise TypeError(msg) + * + * if __PANDAS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + */ if (__pyx_t_10) { + /* "talib/_abstract.pxi":444 + * if __PANDAS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty # <<<<<<<<<<<<<< + * elif __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 444, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 444, __pyx_L1_error) @@ -54822,9 +70118,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_v_no_existing_input_arrays = __pyx_t_3; __pyx_t_3 = 0; + /* "talib/_abstract.pxi":442 + * raise TypeError(msg) + * + * if __PANDAS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + */ goto __pyx_L26; } + /* "talib/_abstract.pxi":445 + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + * elif __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.is_empty() + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 445, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__pyx_t_3 != Py_None); @@ -54835,6 +70145,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO goto __pyx_L29_bool_binop_done; } + /* "talib/_abstract.pxi":446 + * no_existing_input_arrays = local.input_arrays.empty + * elif __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): # <<<<<<<<<<<<<< + * no_existing_input_arrays = local.input_arrays.is_empty() + * else: + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 446, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_POLARS_DATAFRAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 446, __pyx_L1_error) @@ -54845,8 +70162,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_10 = __pyx_t_8; __pyx_L29_bool_binop_done:; + /* "talib/_abstract.pxi":445 + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + * elif __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.is_empty() + */ if (__pyx_t_10) { + /* "talib/_abstract.pxi":447 + * elif __POLARS_DATAFRAME is not None \ + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.is_empty() # <<<<<<<<<<<<<< + * else: + * no_existing_input_arrays = not bool(local.input_arrays) + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 447, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_is_empty); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 447, __pyx_L1_error) @@ -54877,9 +70208,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_v_no_existing_input_arrays = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":445 + * and isinstance(local.input_arrays, __PANDAS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.empty + * elif __POLARS_DATAFRAME is not None \ # <<<<<<<<<<<<<< + * and isinstance(local.input_arrays, __POLARS_DATAFRAME): + * no_existing_input_arrays = local.input_arrays.is_empty() + */ goto __pyx_L26; } + /* "talib/_abstract.pxi":449 + * no_existing_input_arrays = local.input_arrays.is_empty() + * else: + * no_existing_input_arrays = not bool(local.input_arrays) # <<<<<<<<<<<<<< + * + * if len(input_arrays) == len(input_price_series_names): + */ /*else*/ { __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 449, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -54892,11 +70237,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } __pyx_L26:; + /* "talib/_abstract.pxi":451 + * no_existing_input_arrays = not bool(local.input_arrays) + * + * if len(input_arrays) == len(input_price_series_names): # <<<<<<<<<<<<<< + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] + */ __pyx_t_6 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(1, 451, __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(1, 451, __pyx_L1_error) __pyx_t_10 = (__pyx_t_6 == __pyx_t_16); if (__pyx_t_10) { + /* "talib/_abstract.pxi":452 + * + * if len(input_arrays) == len(input_price_series_names): + * self.set_input_arrays(input_arrays) # <<<<<<<<<<<<<< + * args = args[len(input_arrays):] + * elif len(input_arrays) or (no_existing_input_arrays and ( + */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_input_arrays); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 452, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = NULL; @@ -54923,15 +70282,36 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":453 + * if len(input_arrays) == len(input_price_series_names): + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] # <<<<<<<<<<<<<< + * elif len(input_arrays) or (no_existing_input_arrays and ( + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + */ __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 453, __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(1, 453, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_args, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":451 + * no_existing_input_arrays = not bool(local.input_arrays) + * + * if len(input_arrays) == len(input_price_series_names): # <<<<<<<<<<<<<< + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] + */ goto __pyx_L31; } + /* "talib/_abstract.pxi":454 + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] + * elif len(input_arrays) or (no_existing_input_arrays and ( # <<<<<<<<<<<<<< + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( + */ __pyx_t_16 = PyDict_Size(__pyx_v_input_arrays); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 454, __pyx_L1_error) __pyx_t_8 = (__pyx_t_16 != 0); if (!__pyx_t_8) { @@ -54946,6 +70326,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO goto __pyx_L32_bool_binop_done; } + /* "talib/_abstract.pxi":455 + * args = args[len(input_arrays):] + * elif len(input_arrays) or (no_existing_input_arrays and ( + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): # <<<<<<<<<<<<<< + * msg = 'Not enough price arguments: expected %d (%s)' % ( + * len(input_price_series_names), + */ __pyx_t_16 = PyObject_Length(__pyx_v_args); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 455, __pyx_L1_error) __pyx_t_8 = (!(__pyx_t_16 != 0)); if (!__pyx_t_8) { @@ -54964,15 +70351,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_10 = __pyx_t_9; __pyx_L32_bool_binop_done:; + /* "talib/_abstract.pxi":454 + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] + * elif len(input_arrays) or (no_existing_input_arrays and ( # <<<<<<<<<<<<<< + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( + */ if (unlikely(__pyx_t_10)) { + /* "talib/_abstract.pxi":457 + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( + * len(input_price_series_names), # <<<<<<<<<<<<<< + * ', '.join(input_price_series_names)) + * raise TypeError(msg) + */ __pyx_t_16 = PyObject_Length(__pyx_v_input_price_series_names); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(1, 457, __pyx_L1_error) __pyx_t_15 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":458 + * msg = 'Not enough price arguments: expected %d (%s)' % ( + * len(input_price_series_names), + * ', '.join(input_price_series_names)) # <<<<<<<<<<<<<< + * raise TypeError(msg) + * + */ __pyx_t_1 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_input_price_series_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 458, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); + /* "talib/_abstract.pxi":457 + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( + * len(input_price_series_names), # <<<<<<<<<<<<<< + * ', '.join(input_price_series_names)) + * raise TypeError(msg) + */ __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_15); @@ -54982,21 +70397,49 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_15 = 0; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":456 + * elif len(input_arrays) or (no_existing_input_arrays and ( + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( # <<<<<<<<<<<<<< + * len(input_price_series_names), + * ', '.join(input_price_series_names)) + */ __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 456, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; __pyx_v_msg = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":459 + * len(input_price_series_names), + * ', '.join(input_price_series_names)) + * raise TypeError(msg) # <<<<<<<<<<<<<< + * + * self.set_function_args(*args, **kwargs) + */ __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_v_msg); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 459, __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(1, 459, __pyx_L1_error) + /* "talib/_abstract.pxi":454 + * self.set_input_arrays(input_arrays) + * args = args[len(input_arrays):] + * elif len(input_arrays) or (no_existing_input_arrays and ( # <<<<<<<<<<<<<< + * not len(args) or not isinstance(args[0], __INPUT_ARRAYS_TYPES))): + * msg = 'Not enough price arguments: expected %d (%s)' % ( + */ } __pyx_L31:; + /* "talib/_abstract.pxi":461 + * raise TypeError(msg) + * + * self.set_function_args(*args, **kwargs) # <<<<<<<<<<<<<< + * self.__call_function() + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_function_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 461, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 461, __pyx_L1_error) @@ -55010,6 +70453,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":462 + * + * self.set_function_args(*args, **kwargs) + * self.__call_function() # <<<<<<<<<<<<<< + * + * # restore opt_input values to as they were before this call + */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__call_function); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 462, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_3 = NULL; @@ -55036,6 +70486,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":465 + * + * # 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 + */ __pyx_t_4 = __pyx_v_opt_input_values; __Pyx_INCREF(__pyx_t_4); __pyx_t_16 = 0; for (;;) { @@ -55103,6 +70560,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":466 + * # 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 + * + */ __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_15)) __PYX_ERR(1, 466, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_15); __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_param_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 466, __pyx_L1_error) @@ -55111,9 +70575,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_n_s_value, __pyx_v_value) < 0))) __PYX_ERR(1, 466, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":465 + * + * # 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 + */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":467 + * 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 + */ __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_parameters); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 467, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 467, __pyx_L1_error) @@ -55122,6 +70600,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":470 + * + * # 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 + */ __pyx_t_4 = __pyx_v_price_series_name_values; __Pyx_INCREF(__pyx_t_4); __pyx_t_16 = 0; for (;;) { @@ -55189,6 +70674,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":471 + * # 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 + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_input_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 471, __pyx_L1_error) @@ -55197,6 +70689,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO if (unlikely((PyObject_SetItem(__pyx_t_3, __pyx_n_s_price_series, __pyx_v_value) < 0))) __PYX_ERR(1, 471, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":472 + * 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 + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_info); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 472, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 472, __pyx_L1_error) @@ -55205,9 +70704,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO if (unlikely((PyObject_SetItem(__pyx_t_1, __pyx_v_input_name, __pyx_v_value) < 0))) __PYX_ERR(1, 472, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":470 + * + * # 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 + */ } __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":474 + * local.info['input_names'][input_name] = value + * + * return self.outputs # <<<<<<<<<<<<<< + * + * # figure out which price series names we're using for inputs + */ __Pyx_XDECREF(__pyx_r); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_outputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 474, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); @@ -55215,6 +70728,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ /* function exit code */ __pyx_L1_error:; @@ -55248,6 +70768,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_32__call__(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_35__input_price_series_names(PyObject *__pyx_self, @@ -55367,16 +70894,37 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__input_price_series_names", 1); + /* "talib/_abstract.pxi":478 + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): + * local = self.__local # <<<<<<<<<<<<<< + * input_price_series_names = [] + * for input_name in local.input_names: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 478, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":479 + * def __input_price_series_names(self): + * local = self.__local + * input_price_series_names = [] # <<<<<<<<<<<<<< + * for input_name in local.input_names: + * price_series = local.input_names[input_name]['price_series'] + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 479, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_input_price_series_names = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":480 + * local = self.__local + * input_price_series_names = [] + * for input_name in local.input_names: # <<<<<<<<<<<<<< + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 480, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -55435,6 +70983,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":481 + * input_price_series_names = [] + * for input_name in local.input_names: + * price_series = local.input_names[input_name]['price_series'] # <<<<<<<<<<<<<< + * if isinstance(price_series, list): # TALIB-supplied input names + * for name in price_series: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_names); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 481, __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(1, 481, __pyx_L1_error) @@ -55446,9 +71001,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":482 + * for input_name in local.input_names: + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names # <<<<<<<<<<<<<< + * for name in price_series: + * input_price_series_names.append(name) + */ __pyx_t_6 = PyList_Check(__pyx_v_price_series); if (__pyx_t_6) { + /* "talib/_abstract.pxi":483 + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names + * for name in price_series: # <<<<<<<<<<<<<< + * input_price_series_names.append(name) + * else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + */ 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; @@ -55504,27 +71073,76 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names __Pyx_XDECREF_SET(__pyx_v_name, __pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":484 + * if isinstance(price_series, list): # TALIB-supplied input names + * for name in price_series: + * input_price_series_names.append(name) # <<<<<<<<<<<<<< + * else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + * input_price_series_names.append(price_series) + */ __pyx_t_9 = __Pyx_PyList_Append(__pyx_v_input_price_series_names, __pyx_v_name); if (unlikely(__pyx_t_9 == ((int)-1))) __PYX_ERR(1, 484, __pyx_L1_error) + /* "talib/_abstract.pxi":483 + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names + * for name in price_series: # <<<<<<<<<<<<<< + * input_price_series_names.append(name) + * else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":482 + * for input_name in local.input_names: + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names # <<<<<<<<<<<<<< + * for name in price_series: + * input_price_series_names.append(name) + */ goto __pyx_L5; } + /* "talib/_abstract.pxi":486 + * input_price_series_names.append(name) + * else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + * input_price_series_names.append(price_series) # <<<<<<<<<<<<<< + * return input_price_series_names + * + */ /*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(1, 486, __pyx_L1_error) } __pyx_L5:; + /* "talib/_abstract.pxi":480 + * local = self.__local + * input_price_series_names = [] + * for input_name in local.input_names: # <<<<<<<<<<<<<< + * price_series = local.input_names[input_name]['price_series'] + * if isinstance(price_series, list): # TALIB-supplied input names + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":487 + * else: # name came from __INPUT_PRICE_SERIES_DEFAULTS + * input_price_series_names.append(price_series) + * return input_price_series_names # <<<<<<<<<<<<<< + * + * def __call_function(self): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_input_price_series_names); __pyx_r = __pyx_v_input_price_series_names; goto __pyx_L0; + /* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ /* function exit code */ __pyx_L1_error:; @@ -55544,6 +71162,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_34__input_price_series_names return __pyx_r; } +/* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_37__call_function(PyObject *__pyx_self, @@ -55671,11 +71296,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__call_function", 1); + /* "talib/_abstract.pxi":490 + * + * def __call_function(self): + * local = self.__local # <<<<<<<<<<<<<< + * input_price_series_names = self.__input_price_series_names() + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 490, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":491 + * def __call_function(self): + * local = self.__local + * input_price_series_names = self.__input_price_series_names() # <<<<<<<<<<<<<< + * + * # populate the ordered args we'll call the function with + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__input_price_series_na); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 491, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = NULL; @@ -55703,11 +71342,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_v_input_price_series_names = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":494 + * + * # populate the ordered args we'll call the function with + * args = [] # <<<<<<<<<<<<<< + * for price_series in input_price_series_names: + * series = local.input_arrays[price_series] + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 494, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_args = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":495 + * # populate the ordered args we'll call the function with + * args = [] + * for price_series in input_price_series_names: # <<<<<<<<<<<<<< + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ + */ 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_5 = 0; @@ -55763,6 +71416,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_price_series, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":496 + * args = [] + * for price_series in input_price_series_names: + * series = local.input_arrays[price_series] # <<<<<<<<<<<<<< + * if __PANDAS_SERIES is not None and \ + * isinstance(series, __PANDAS_SERIES): + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_input_arrays); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 496, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_price_series); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 496, __pyx_L1_error) @@ -55771,6 +71431,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_series, __pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":497 + * for price_series in input_price_series_names: + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 497, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__pyx_t_3 != Py_None); @@ -55781,6 +71448,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU goto __pyx_L6_bool_binop_done; } + /* "talib/_abstract.pxi":498 + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ + * isinstance(series, __PANDAS_SERIES): # <<<<<<<<<<<<<< + * series = series.values.astype(float) + * elif __POLARS_SERIES is not None and \ + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_PANDAS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 498, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 498, __pyx_L1_error) @@ -55788,8 +71462,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_t_7 = __pyx_t_8; __pyx_L6_bool_binop_done:; + /* "talib/_abstract.pxi":497 + * for price_series in input_price_series_names: + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + */ if (__pyx_t_7) { + /* "talib/_abstract.pxi":499 + * if __PANDAS_SERIES is not None and \ + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) # <<<<<<<<<<<<<< + * elif __POLARS_SERIES is not None and \ + * isinstance(series, __POLARS_SERIES): + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 499, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_astype); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 499, __pyx_L1_error) @@ -55820,9 +71508,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":497 + * for price_series in input_price_series_names: + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + */ goto __pyx_L5; } + /* "talib/_abstract.pxi":500 + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + * elif __POLARS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __POLARS_SERIES): + * series = series.to_numpy().astype(float) + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 500, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = (__pyx_t_3 != Py_None); @@ -55833,6 +71535,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU goto __pyx_L8_bool_binop_done; } + /* "talib/_abstract.pxi":501 + * series = series.values.astype(float) + * elif __POLARS_SERIES is not None and \ + * isinstance(series, __POLARS_SERIES): # <<<<<<<<<<<<<< + * series = series.to_numpy().astype(float) + * args.append(series) + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_POLARS_SERIES); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 501, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_8 = PyObject_IsInstance(__pyx_v_series, __pyx_t_3); if (unlikely(__pyx_t_8 == ((int)-1))) __PYX_ERR(1, 501, __pyx_L1_error) @@ -55840,8 +71549,22 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_t_7 = __pyx_t_8; __pyx_L8_bool_binop_done:; + /* "talib/_abstract.pxi":500 + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + * elif __POLARS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __POLARS_SERIES): + * series = series.to_numpy().astype(float) + */ if (__pyx_t_7) { + /* "talib/_abstract.pxi":502 + * elif __POLARS_SERIES is not None and \ + * isinstance(series, __POLARS_SERIES): + * series = series.to_numpy().astype(float) # <<<<<<<<<<<<<< + * args.append(series) + * for opt_input in local.opt_inputs: + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_series, __pyx_n_s_to_numpy); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 502, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_10 = NULL; @@ -55894,14 +71617,42 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_DECREF_SET(__pyx_v_series, __pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":500 + * isinstance(series, __PANDAS_SERIES): + * series = series.values.astype(float) + * elif __POLARS_SERIES is not None and \ # <<<<<<<<<<<<<< + * isinstance(series, __POLARS_SERIES): + * series = series.to_numpy().astype(float) + */ } __pyx_L5:; + /* "talib/_abstract.pxi":503 + * isinstance(series, __POLARS_SERIES): + * series = series.to_numpy().astype(float) + * args.append(series) # <<<<<<<<<<<<<< + * for opt_input in local.opt_inputs: + * value = self.__get_opt_input_value(opt_input) + */ __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_series); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 503, __pyx_L1_error) + /* "talib/_abstract.pxi":495 + * # populate the ordered args we'll call the function with + * args = [] + * for price_series in input_price_series_names: # <<<<<<<<<<<<<< + * series = local.input_arrays[price_series] + * if __PANDAS_SERIES is not None and \ + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":504 + * series = series.to_numpy().astype(float) + * args.append(series) + * for opt_input in local.opt_inputs: # <<<<<<<<<<<<<< + * value = self.__get_opt_input_value(opt_input) + * args.append(value) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 504, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) { @@ -55960,6 +71711,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_opt_input, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":505 + * args.append(series) + * for opt_input in local.opt_inputs: + * value = self.__get_opt_input_value(opt_input) # <<<<<<<<<<<<<< + * args.append(value) + * + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__get_opt_input_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 505, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = NULL; @@ -55987,11 +71745,32 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":506 + * for opt_input in local.opt_inputs: + * value = self.__get_opt_input_value(opt_input) + * args.append(value) # <<<<<<<<<<<<<< + * + * # Use the func module to actually call the function. + */ __pyx_t_11 = __Pyx_PyList_Append(__pyx_v_args, __pyx_v_value); if (unlikely(__pyx_t_11 == ((int)-1))) __PYX_ERR(1, 506, __pyx_L1_error) + /* "talib/_abstract.pxi":504 + * series = series.to_numpy().astype(float) + * args.append(series) + * for opt_input in local.opt_inputs: # <<<<<<<<<<<<<< + * value = self.__get_opt_input_value(opt_input) + * args.append(value) + */ } __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":509 + * + * # Use the func module to actually call the function. + * results = self.func_object(*args) # <<<<<<<<<<<<<< + * if isinstance(results, np.ndarray): + * keys = local.outputs.keys() + */ __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_func_object); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 509, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_1 = PySequence_Tuple(__pyx_v_args); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 509, __pyx_L1_error) @@ -56003,9 +71782,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_v_results = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":510 + * # Use the func module to actually call the function. + * results = self.func_object(*args) + * if isinstance(results, np.ndarray): # <<<<<<<<<<<<<< + * keys = local.outputs.keys() + * if not isinstance(keys, list): + */ __pyx_t_7 = __Pyx_TypeCheck(__pyx_v_results, __pyx_ptype_5numpy_ndarray); if (__pyx_t_7) { + /* "talib/_abstract.pxi":511 + * results = self.func_object(*args) + * if isinstance(results, np.ndarray): + * keys = local.outputs.keys() # <<<<<<<<<<<<<< + * if not isinstance(keys, list): + * keys = list(keys) + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 511, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 511, __pyx_L1_error) @@ -56036,17 +71829,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_v_keys = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":512 + * if isinstance(results, np.ndarray): + * keys = local.outputs.keys() + * if not isinstance(keys, list): # <<<<<<<<<<<<<< + * keys = list(keys) + * local.outputs[keys[0]] = results + */ __pyx_t_7 = PyList_Check(__pyx_v_keys); __pyx_t_8 = (!__pyx_t_7); if (__pyx_t_8) { + /* "talib/_abstract.pxi":513 + * keys = local.outputs.keys() + * if not isinstance(keys, list): + * keys = list(keys) # <<<<<<<<<<<<<< + * local.outputs[keys[0]] = results + * else: + */ __pyx_t_2 = PySequence_List(__pyx_v_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 513, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_keys, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":512 + * if isinstance(results, np.ndarray): + * keys = local.outputs.keys() + * if not isinstance(keys, list): # <<<<<<<<<<<<<< + * keys = list(keys) + * local.outputs[keys[0]] = results + */ } + /* "talib/_abstract.pxi":514 + * if not isinstance(keys, list): + * keys = list(keys) + * local.outputs[keys[0]] = results # <<<<<<<<<<<<<< + * else: + * for i, output in enumerate(local.outputs): + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 514, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_keys, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 514, __pyx_L1_error) @@ -56055,9 +71876,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":510 + * # Use the func module to actually call the function. + * results = self.func_object(*args) + * if isinstance(results, np.ndarray): # <<<<<<<<<<<<<< + * keys = local.outputs.keys() + * if not isinstance(keys, list): + */ goto __pyx_L14; } + /* "talib/_abstract.pxi":516 + * local.outputs[keys[0]] = results + * else: + * for i, output in enumerate(local.outputs): # <<<<<<<<<<<<<< + * local.outputs[output] = results[i] + * local.outputs_valid = True + */ /*else*/ { __Pyx_INCREF(__pyx_int_0); __pyx_t_3 = __pyx_int_0; @@ -56126,6 +71961,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __pyx_t_3 = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":517 + * else: + * for i, output in enumerate(local.outputs): + * local.outputs[output] = results[i] # <<<<<<<<<<<<<< + * local.outputs_valid = True + * + */ __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_results, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_outputs); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 517, __pyx_L1_error) @@ -56134,14 +71976,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":516 + * local.outputs[keys[0]] = results + * else: + * for i, output in enumerate(local.outputs): # <<<<<<<<<<<<<< + * local.outputs[output] = results[i] + * local.outputs_valid = True + */ } __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } __pyx_L14:; + /* "talib/_abstract.pxi":518 + * for i, output in enumerate(local.outputs): + * local.outputs[output] = results[i] + * local.outputs_valid = True # <<<<<<<<<<<<<< + * + * def __check_opt_input_value(self, input_name, value): + */ if (__Pyx_PyObject_SetAttrStr(__pyx_v_local, __pyx_n_s_outputs_valid, Py_True) < 0) __PYX_ERR(1, 518, __pyx_L1_error) + /* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); @@ -56171,6 +72034,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_36__call_function(CYTHON_UNU return __pyx_r; } +/* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_39__check_opt_input_value(PyObject *__pyx_self, @@ -56312,6 +72182,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__check_opt_input_value", 1); + /* "talib/_abstract.pxi":521 + * + * def __check_opt_input_value(self, input_name, value): + * type_ = self.__local.opt_inputs[input_name]['type'] # <<<<<<<<<<<<<< + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + * type_ = int + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 521, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 521, __pyx_L1_error) @@ -56326,6 +72203,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY __pyx_v_type_ = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":522 + * def __check_opt_input_value(self, input_name, value): + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: # <<<<<<<<<<<<<< + * type_ = int + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: + */ __Pyx_INCREF(__pyx_v_type_); __pyx_t_2 = __pyx_v_type_; __pyx_t_1 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_IntegerList); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 522, __pyx_L1_error) @@ -56351,12 +72235,33 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY __pyx_t_5 = __pyx_t_3; if (__pyx_t_5) { + /* "talib/_abstract.pxi":523 + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + * type_ = int # <<<<<<<<<<<<<< + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: + * type_ = float + */ __Pyx_INCREF((PyObject *)(&PyInt_Type)); __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyInt_Type))); + /* "talib/_abstract.pxi":522 + * def __check_opt_input_value(self, input_name, value): + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: # <<<<<<<<<<<<<< + * type_ = int + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: + */ goto __pyx_L3; } + /* "talib/_abstract.pxi":524 + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + * type_ = int + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: # <<<<<<<<<<<<<< + * type_ = float + * + */ __Pyx_INCREF(__pyx_v_type_); __pyx_t_2 = __pyx_v_type_; __pyx_t_1 = __Pyx_PyInt_From_TA_OptInputParameterType(TA_OptInput_RealList); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 524, __pyx_L1_error) @@ -56382,25 +72287,74 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY __pyx_t_3 = __pyx_t_5; if (__pyx_t_3) { + /* "talib/_abstract.pxi":525 + * type_ = int + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: + * type_ = float # <<<<<<<<<<<<<< + * + * if isinstance(value, type_): + */ __Pyx_INCREF((PyObject *)(&PyFloat_Type)); __Pyx_DECREF_SET(__pyx_v_type_, ((PyObject *)(&PyFloat_Type))); + /* "talib/_abstract.pxi":524 + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + * type_ = int + * elif type_ in {lib.TA_OptInput_RealList, lib.TA_OptInput_RealRange}: # <<<<<<<<<<<<<< + * type_ = float + * + */ } __pyx_L3:; + /* "talib/_abstract.pxi":527 + * type_ = float + * + * if isinstance(value, type_): # <<<<<<<<<<<<<< + * return True + * elif value is not None: + */ __pyx_t_3 = PyObject_IsInstance(__pyx_v_value, __pyx_v_type_); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 527, __pyx_L1_error) if (__pyx_t_3) { + /* "talib/_abstract.pxi":528 + * + * if isinstance(value, type_): + * return True # <<<<<<<<<<<<<< + * elif value is not None: + * raise TypeError( + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_True); __pyx_r = Py_True; goto __pyx_L0; + /* "talib/_abstract.pxi":527 + * type_ = float + * + * if isinstance(value, type_): # <<<<<<<<<<<<<< + * return True + * elif value is not None: + */ } + /* "talib/_abstract.pxi":529 + * if isinstance(value, type_): + * return True + * elif value is not None: # <<<<<<<<<<<<<< + * raise TypeError( + * 'Invalid parameter value for %s (expected %s, got %s)' % ( + */ __pyx_t_3 = (__pyx_v_value != Py_None); if (unlikely(__pyx_t_3)) { + /* "talib/_abstract.pxi":532 + * raise TypeError( + * 'Invalid parameter value for %s (expected %s, got %s)' % ( + * input_name, type_.__name__, type(value).__name__)) # <<<<<<<<<<<<<< + * return False + * + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_type_, __pyx_n_s_name_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 532, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(((PyObject *)Py_TYPE(__pyx_v_value)), __pyx_n_s_name_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 532, __pyx_L1_error) @@ -56417,10 +72371,24 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY __pyx_t_2 = 0; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":531 + * 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 + */ __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 531, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":530 + * 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__)) + */ __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 530, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; @@ -56428,13 +72396,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; __PYX_ERR(1, 530, __pyx_L1_error) + /* "talib/_abstract.pxi":529 + * if isinstance(value, type_): + * return True + * elif value is not None: # <<<<<<<<<<<<<< + * raise TypeError( + * 'Invalid parameter value for %s (expected %s, got %s)' % ( + */ } + /* "talib/_abstract.pxi":533 + * 'Invalid parameter value for %s (expected %s, got %s)' % ( + * input_name, type_.__name__, type(value).__name__)) + * return False # <<<<<<<<<<<<<< + * + * def __get_opt_input_value(self, input_name): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(Py_False); __pyx_r = Py_False; goto __pyx_L0; + /* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ /* function exit code */ __pyx_L1_error:; @@ -56450,6 +72439,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_38__check_opt_input_value(CY return __pyx_r; } +/* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_41__get_opt_input_value(PyObject *__pyx_self, @@ -56576,11 +72572,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_opt_input_value", 1); + /* "talib/_abstract.pxi":539 + * Returns the user-set value if there is one, otherwise the default. + * """ + * local = self.__local # <<<<<<<<<<<<<< + * value = local.opt_inputs[input_name]['value'] + * if value is None: + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_Function__local); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 539, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_local = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":540 + * """ + * local = self.__local + * value = local.opt_inputs[input_name]['value'] # <<<<<<<<<<<<<< + * if value is None: + * value = local.opt_inputs[input_name]['default_value'] + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 540, __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(1, 540, __pyx_L1_error) @@ -56592,9 +72602,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH __pyx_v_value = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":541 + * local = self.__local + * value = local.opt_inputs[input_name]['value'] + * if value is None: # <<<<<<<<<<<<<< + * value = local.opt_inputs[input_name]['default_value'] + * return value + */ __pyx_t_3 = (__pyx_v_value == Py_None); if (__pyx_t_3) { + /* "talib/_abstract.pxi":542 + * value = local.opt_inputs[input_name]['value'] + * if value is None: + * value = local.opt_inputs[input_name]['default_value'] # <<<<<<<<<<<<<< + * return value + * + */ __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_local, __pyx_n_s_opt_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 542, __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(1, 542, __pyx_L1_error) @@ -56606,13 +72630,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH __Pyx_DECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":541 + * local = self.__local + * value = local.opt_inputs[input_name]['value'] + * if value is None: # <<<<<<<<<<<<<< + * value = local.opt_inputs[input_name]['default_value'] + * return value + */ } + /* "talib/_abstract.pxi":543 + * if value is None: + * value = local.opt_inputs[input_name]['default_value'] + * return value # <<<<<<<<<<<<<< + * + * def __repr__(self): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_value); __pyx_r = __pyx_v_value; goto __pyx_L0; + /* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ /* function exit code */ __pyx_L1_error:; @@ -56628,6 +72673,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_40__get_opt_input_value(CYTH return __pyx_r; } +/* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_43__repr__(PyObject *__pyx_self, @@ -56735,6 +72787,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__repr__", 1); + /* "talib/_abstract.pxi":546 + * + * def __repr__(self): + * return '%s' % self.info # <<<<<<<<<<<<<< + * + * def __unicode__(self): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_info); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); @@ -56745,6 +72804,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ /* function exit code */ __pyx_L1_error:; @@ -56758,6 +72824,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_42__repr__(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_45__unicode__(PyObject *__pyx_self, @@ -56867,6 +72940,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__unicode__", 1); + /* "talib/_abstract.pxi":549 + * + * def __unicode__(self): + * return unicode(self.__str__()) # <<<<<<<<<<<<<< + * + * def __str__(self): + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_str); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 549, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -56899,6 +72979,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ /* function exit code */ __pyx_L1_error:; @@ -56913,6 +73000,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_44__unicode__(CYTHON_UNUSED return __pyx_r; } +/* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_8Function_47__str__(PyObject *__pyx_self, @@ -57023,6 +73117,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__str__", 1); + /* "talib/_abstract.pxi":552 + * + * def __str__(self): + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults # <<<<<<<<<<<<<< + * + * + */ __Pyx_XDECREF(__pyx_r); __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_get_defaults_and_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 552, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -57058,6 +73159,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyOb __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ /* function exit code */ __pyx_L1_error:; @@ -57073,6 +73181,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_8Function_46__str__(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_343_ta_getGroupTable(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ @@ -57107,35 +73222,84 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342_ta_getGroupTable(CYTHON_UNUSED PyO int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getGroupTable", 1); + /* "talib/_abstract.pxi":570 + * """ + * cdef lib.TA_StringTable *table + * _ta_check_success('TA_GroupTableAlloc', lib.TA_GroupTableAlloc(&table)) # <<<<<<<<<<<<<< + * groups = [] + * for i in xrange(table.size): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GroupTableAlloc, TA_GroupTableAlloc((&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 570, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":571 + * cdef lib.TA_StringTable *table + * _ta_check_success('TA_GroupTableAlloc', lib.TA_GroupTableAlloc(&table)) + * groups = [] # <<<<<<<<<<<<<< + * for i in xrange(table.size): + * groups.append(deref(&table.string[i])) + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 571, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_groups = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":572 + * _ta_check_success('TA_GroupTableAlloc', lib.TA_GroupTableAlloc(&table)) + * groups = [] + * for i in xrange(table.size): # <<<<<<<<<<<<<< + * groups.append(deref(&table.string[i])) + * _ta_check_success('TA_GroupTableFree', lib.TA_GroupTableFree(table)) + */ __pyx_t_2 = __pyx_v_table->size; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; + /* "talib/_abstract.pxi":573 + * groups = [] + * for i in xrange(table.size): + * groups.append(deref(&table.string[i])) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GroupTableFree', lib.TA_GroupTableFree(table)) + * return groups + */ __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 573, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_groups, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 573, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } + /* "talib/_abstract.pxi":574 + * for i in xrange(table.size): + * groups.append(deref(&table.string[i])) + * _ta_check_success('TA_GroupTableFree', lib.TA_GroupTableFree(table)) # <<<<<<<<<<<<<< + * return groups + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GroupTableFree, TA_GroupTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 574, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":575 + * groups.append(deref(&table.string[i])) + * _ta_check_success('TA_GroupTableFree', lib.TA_GroupTableFree(table)) + * return groups # <<<<<<<<<<<<<< + * + * def _ta_getFuncTable(char *group): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_groups); __pyx_r = __pyx_v_groups; goto __pyx_L0; + /* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ /* function exit code */ __pyx_L1_error:; @@ -57149,6 +73313,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_342_ta_getGroupTable(CYTHON_UNUSED PyO return __pyx_r; } +/* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_345_ta_getFuncTable(PyObject *__pyx_self, @@ -57263,35 +73434,84 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344_ta_getFuncTable(CYTHON_UNUSED PyOb int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getFuncTable", 1); + /* "talib/_abstract.pxi":582 + * """ + * cdef lib.TA_StringTable *table + * _ta_check_success('TA_FuncTableAlloc', lib.TA_FuncTableAlloc(group, &table)) # <<<<<<<<<<<<<< + * functions = [] + * for i in xrange(table.size): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FuncTableAlloc, TA_FuncTableAlloc(__pyx_v_group, (&__pyx_v_table)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 582, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":583 + * cdef lib.TA_StringTable *table + * _ta_check_success('TA_FuncTableAlloc', lib.TA_FuncTableAlloc(group, &table)) + * functions = [] # <<<<<<<<<<<<<< + * for i in xrange(table.size): + * functions.append(deref(&table.string[i])) + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 583, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_functions = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":584 + * _ta_check_success('TA_FuncTableAlloc', lib.TA_FuncTableAlloc(group, &table)) + * functions = [] + * for i in xrange(table.size): # <<<<<<<<<<<<<< + * functions.append(deref(&table.string[i])) + * _ta_check_success('TA_FuncTableFree', lib.TA_FuncTableFree(table)) + */ __pyx_t_2 = __pyx_v_table->size; __pyx_t_3 = __pyx_t_2; for (__pyx_t_4 = 0; __pyx_t_4 < __pyx_t_3; __pyx_t_4+=1) { __pyx_v_i = __pyx_t_4; + /* "talib/_abstract.pxi":585 + * functions = [] + * for i in xrange(table.size): + * functions.append(deref(&table.string[i])) # <<<<<<<<<<<<<< + * _ta_check_success('TA_FuncTableFree', lib.TA_FuncTableFree(table)) + * return functions + */ __pyx_t_1 = __Pyx_PyBytes_FromString((*(&(__pyx_v_table->string[__pyx_v_i])))); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 585, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = __Pyx_PyList_Append(__pyx_v_functions, __pyx_t_1); if (unlikely(__pyx_t_5 == ((int)-1))) __PYX_ERR(1, 585, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; } + /* "talib/_abstract.pxi":586 + * for i in xrange(table.size): + * functions.append(deref(&table.string[i])) + * _ta_check_success('TA_FuncTableFree', lib.TA_FuncTableFree(table)) # <<<<<<<<<<<<<< + * return functions + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FuncTableFree, TA_FuncTableFree(__pyx_v_table), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 586, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":587 + * functions.append(deref(&table.string[i])) + * _ta_check_success('TA_FuncTableFree', lib.TA_FuncTableFree(table)) + * return functions # <<<<<<<<<<<<<< + * + * def __get_flags(int flag, dict flags_lookup_dict): + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_functions); __pyx_r = __pyx_v_functions; goto __pyx_L0; + /* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ /* function exit code */ __pyx_L1_error:; @@ -57305,6 +73525,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_344_ta_getFuncTable(CYTHON_UNUSED PyOb return __pyx_r; } +/* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_347__get_flags(PyObject *__pyx_self, @@ -57446,6 +73673,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__get_flags", 1); + /* "talib/_abstract.pxi":595 + * flags_lookup_dict. + * """ + * value_range = flags_lookup_dict.keys() # <<<<<<<<<<<<<< + * if not isinstance(value_range, list): + * value_range = list(value_range) + */ if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys"); __PYX_ERR(1, 595, __pyx_L1_error) @@ -57455,17 +73689,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __pyx_v_value_range = __pyx_t_1; __pyx_t_1 = 0; + /* "talib/_abstract.pxi":596 + * """ + * value_range = flags_lookup_dict.keys() + * if not isinstance(value_range, list): # <<<<<<<<<<<<<< + * value_range = list(value_range) + * min_int = int(math.log(min(value_range), 2)) + */ __pyx_t_2 = PyList_Check(__pyx_v_value_range); __pyx_t_3 = (!__pyx_t_2); if (__pyx_t_3) { + /* "talib/_abstract.pxi":597 + * value_range = flags_lookup_dict.keys() + * if not isinstance(value_range, list): + * value_range = list(value_range) # <<<<<<<<<<<<<< + * min_int = int(math.log(min(value_range), 2)) + * max_int = int(math.log(max(value_range), 2)) + */ __pyx_t_1 = PySequence_List(__pyx_v_value_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 597, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF_SET(__pyx_v_value_range, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":596 + * """ + * value_range = flags_lookup_dict.keys() + * if not isinstance(value_range, list): # <<<<<<<<<<<<<< + * value_range = list(value_range) + * min_int = int(math.log(min(value_range), 2)) + */ } + /* "talib/_abstract.pxi":598 + * if not isinstance(value_range, list): + * value_range = list(value_range) + * min_int = int(math.log(min(value_range), 2)) # <<<<<<<<<<<<<< + * max_int = int(math.log(max(value_range), 2)) + * + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_math); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 598, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_log); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 598, __pyx_L1_error) @@ -57502,6 +73764,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __pyx_v_min_int = __pyx_t_5; __pyx_t_5 = 0; + /* "talib/_abstract.pxi":599 + * value_range = list(value_range) + * min_int = int(math.log(min(value_range), 2)) + * max_int = int(math.log(max(value_range), 2)) # <<<<<<<<<<<<<< + * + * # if the flag we got is out-of-range, it just means no extra info provided + */ __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_math); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 599, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_log); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 599, __pyx_L1_error) @@ -57538,6 +73807,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __pyx_v_max_int = __pyx_t_4; __pyx_t_4 = 0; + /* "talib/_abstract.pxi":602 + * + * # if the flag we got is out-of-range, it just means no extra info provided + * if flag < 1 or flag > 2**max_int: # <<<<<<<<<<<<<< + * return None + * + */ __pyx_t_2 = (__pyx_v_flag < 1); if (!__pyx_t_2) { } else { @@ -57557,17 +73833,45 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __pyx_L5_bool_binop_done:; if (__pyx_t_3) { + /* "talib/_abstract.pxi":603 + * # if the flag we got is out-of-range, it just means no extra info provided + * if flag < 1 or flag > 2**max_int: + * return None # <<<<<<<<<<<<<< + * + * # In this loop, i is essentially the bit-position, which represents an + */ __Pyx_XDECREF(__pyx_r); __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; + /* "talib/_abstract.pxi":602 + * + * # if the flag we got is out-of-range, it just means no extra info provided + * if flag < 1 or flag > 2**max_int: # <<<<<<<<<<<<<< + * return None + * + */ } + /* "talib/_abstract.pxi":608 + * # input from flags_lookup_dict. We loop through as many flags_lookup_dict + * # bit-positions as we need to check, bitwise-ANDing each with flag for a hit. + * ret = [] # <<<<<<<<<<<<<< + * for i in xrange(min_int, max_int+1): + * if 2**i & flag: + */ __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 608, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_ret = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":609 + * # bit-positions as we need to check, bitwise-ANDing each with flag for a hit. + * ret = [] + * for i in xrange(min_int, max_int+1): # <<<<<<<<<<<<<< + * if 2**i & flag: + * ret.append(flags_lookup_dict[2**i]) + */ __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_max_int, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 609, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 609, __pyx_L1_error) @@ -57637,6 +73941,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":610 + * ret = [] + * for i in xrange(min_int, max_int+1): + * if 2**i & flag: # <<<<<<<<<<<<<< + * ret.append(flags_lookup_dict[2**i]) + * return ret + */ __pyx_t_1 = __Pyx_PyNumber_PowerOf2(__pyx_int_2, __pyx_v_i, Py_None); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 610, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_flag); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 610, __pyx_L1_error) @@ -57649,6 +73960,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; if (__pyx_t_3) { + /* "talib/_abstract.pxi":611 + * for i in xrange(min_int, max_int+1): + * if 2**i & flag: + * ret.append(flags_lookup_dict[2**i]) # <<<<<<<<<<<<<< + * return ret + * + */ if (unlikely(__pyx_v_flags_lookup_dict == Py_None)) { PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable"); __PYX_ERR(1, 611, __pyx_L1_error) @@ -57661,16 +73979,44 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject __pyx_t_10 = __Pyx_PyList_Append(__pyx_v_ret, __pyx_t_4); if (unlikely(__pyx_t_10 == ((int)-1))) __PYX_ERR(1, 611, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":610 + * ret = [] + * for i in xrange(min_int, max_int+1): + * if 2**i & flag: # <<<<<<<<<<<<<< + * ret.append(flags_lookup_dict[2**i]) + * return ret + */ } + /* "talib/_abstract.pxi":609 + * # bit-positions as we need to check, bitwise-ANDing each with flag for a hit. + * ret = [] + * for i in xrange(min_int, max_int+1): # <<<<<<<<<<<<<< + * if 2**i & flag: + * ret.append(flags_lookup_dict[2**i]) + */ } __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_abstract.pxi":612 + * if 2**i & flag: + * ret.append(flags_lookup_dict[2**i]) + * return ret # <<<<<<<<<<<<<< + * + * TA_FUNC_FLAGS = { + */ __Pyx_XDECREF(__pyx_r); __Pyx_INCREF(__pyx_v_ret); __pyx_r = __pyx_v_ret; goto __pyx_L0; + /* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ /* function exit code */ __pyx_L1_error:; @@ -57691,6 +74037,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_346__get_flags(CYTHON_UNUSED PyObject return __pyx_r; } +/* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_349_ta_getFuncInfo(PyObject *__pyx_self, @@ -57807,15 +74160,43 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getFuncInfo", 1); + /* "talib/_abstract.pxi":654 + * """ + * cdef const lib.TA_FuncInfo *info + * retCode = lib.TA_GetFuncInfo(__ta_getFuncHandle(function_name), &info) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GetFuncInfo', retCode) + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((TA_FuncHandle const *)NULL) && PyErr_Occurred())) __PYX_ERR(1, 654, __pyx_L1_error) __pyx_v_retCode = TA_GetFuncInfo(__pyx_t_1, (&__pyx_v_info)); + /* "talib/_abstract.pxi":655 + * cdef const lib.TA_FuncInfo *info + * retCode = lib.TA_GetFuncInfo(__ta_getFuncHandle(function_name), &info) + * _ta_check_success('TA_GetFuncInfo', retCode) # <<<<<<<<<<<<<< + * + * return { + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetFuncInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 655, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":657 + * _ta_check_success('TA_GetFuncInfo', retCode) + * + * return { # <<<<<<<<<<<<<< + * 'name': bytes2str(info.name), + * 'group': bytes2str(info.group), + */ __Pyx_XDECREF(__pyx_r); + /* "talib/_abstract.pxi":658 + * + * return { + * 'name': bytes2str(info.name), # <<<<<<<<<<<<<< + * 'group': bytes2str(info.group), + * 'display_name': bytes2str(info.hint), + */ __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 658, __pyx_L1_error) @@ -57848,6 +74229,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_t_3) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":659 + * return { + * 'name': bytes2str(info.name), + * 'group': bytes2str(info.group), # <<<<<<<<<<<<<< + * 'display_name': bytes2str(info.hint), + * 'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS), + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 659, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->group); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 659, __pyx_L1_error) @@ -57878,6 +74266,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_group, __pyx_t_3) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":660 + * 'name': bytes2str(info.name), + * 'group': bytes2str(info.group), + * 'display_name': bytes2str(info.hint), # <<<<<<<<<<<<<< + * 'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS), + * 'num_inputs': int(info.nbInput), + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 660, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 660, __pyx_L1_error) @@ -57908,6 +74303,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_display_name, __pyx_t_3) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":661 + * 'group': bytes2str(info.group), + * 'display_name': bytes2str(info.hint), + * 'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS), # <<<<<<<<<<<<<< + * 'num_inputs': int(info.nbInput), + * 'num_opt_inputs': int(info.nbOptInput), + */ __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 661, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_5 = __Pyx_PyInt_From_TA_FuncFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 661, __pyx_L1_error) @@ -57941,6 +74343,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_function_flags, __pyx_t_3) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":662 + * 'display_name': bytes2str(info.hint), + * 'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS), + * 'num_inputs': int(info.nbInput), # <<<<<<<<<<<<<< + * 'num_opt_inputs': int(info.nbOptInput), + * 'num_outputs': int(info.nbOutput) + */ __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbInput); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 662, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 662, __pyx_L1_error) @@ -57949,6 +74358,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_num_inputs, __pyx_t_4) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":663 + * 'function_flags': __get_flags(info.flags, TA_FUNC_FLAGS), + * 'num_inputs': int(info.nbInput), + * 'num_opt_inputs': int(info.nbOptInput), # <<<<<<<<<<<<<< + * 'num_outputs': int(info.nbOutput) + * } + */ __pyx_t_4 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbOptInput); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 663, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); __pyx_t_3 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 663, __pyx_L1_error) @@ -57957,6 +74373,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_num_opt_inputs, __pyx_t_3) < 0) __PYX_ERR(1, 658, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":664 + * 'num_inputs': int(info.nbInput), + * 'num_opt_inputs': int(info.nbOptInput), + * 'num_outputs': int(info.nbOutput) # <<<<<<<<<<<<<< + * } + * + */ __pyx_t_3 = __Pyx_PyInt_From_unsigned_int(__pyx_v_info->nbOutput); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 664, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyObject_CallOneArg(((PyObject *)(&PyInt_Type)), __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 664, __pyx_L1_error) @@ -57968,6 +74391,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ /* function exit code */ __pyx_L1_error:; @@ -57985,6 +74415,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_348_ta_getFuncInfo(CYTHON_UNUSED PyObj return __pyx_r; } +/* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_351_ta_getInputParameterInfo(PyObject *__pyx_self, @@ -58119,13 +74556,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getInputParameterInfo", 1); + /* "talib/_abstract.pxi":673 + * """ + * cdef const lib.TA_InputParameterInfo *info + * retCode = lib.TA_GetInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GetInputParameterInfo', retCode) + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((TA_FuncHandle const *)NULL) && PyErr_Occurred())) __PYX_ERR(1, 673, __pyx_L1_error) __pyx_v_retCode = TA_GetInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + /* "talib/_abstract.pxi":674 + * cdef const lib.TA_InputParameterInfo *info + * retCode = lib.TA_GetInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) + * _ta_check_success('TA_GetInputParameterInfo', retCode) # <<<<<<<<<<<<<< + * + * name = bytes2str(info.paramName) + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 674, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":676 + * _ta_check_success('TA_GetInputParameterInfo', retCode) + * + * name = bytes2str(info.paramName) # <<<<<<<<<<<<<< + * name = name[len('in'):].lower() + * if 'real' in name: + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 676, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 676, __pyx_L1_error) @@ -58156,6 +74614,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN __pyx_v_name = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":677 + * + * name = bytes2str(info.paramName) + * name = name[len('in'):].lower() # <<<<<<<<<<<<<< + * if 'real' in name: + * name = name.replace('real', 'price') + */ __pyx_t_7 = PyObject_Length(__pyx_n_s_in); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 677, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 677, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); @@ -58187,9 +74652,23 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":678 + * name = bytes2str(info.paramName) + * name = name[len('in'):].lower() + * if 'real' in name: # <<<<<<<<<<<<<< + * name = name.replace('real', 'price') + * elif 'price' in name: + */ __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(1, 678, __pyx_L1_error) if (__pyx_t_8) { + /* "talib/_abstract.pxi":679 + * name = name[len('in'):].lower() + * if 'real' in name: + * name = name.replace('real', 'price') # <<<<<<<<<<<<<< + * elif 'price' in name: + * name = 'prices' + */ __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_name, __pyx_n_s_replace); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 679, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_tuple__8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 679, __pyx_L1_error) @@ -58198,24 +74677,73 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":678 + * name = bytes2str(info.paramName) + * name = name[len('in'):].lower() + * if 'real' in name: # <<<<<<<<<<<<<< + * name = name.replace('real', 'price') + * elif 'price' in name: + */ goto __pyx_L3; } + /* "talib/_abstract.pxi":680 + * if 'real' in name: + * name = name.replace('real', 'price') + * elif 'price' in name: # <<<<<<<<<<<<<< + * name = 'prices' + * + */ __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_price, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_8 < 0))) __PYX_ERR(1, 680, __pyx_L1_error) if (__pyx_t_8) { + /* "talib/_abstract.pxi":681 + * name = name.replace('real', 'price') + * elif 'price' in name: + * name = 'prices' # <<<<<<<<<<<<<< + * + * return { + */ __Pyx_INCREF(__pyx_n_s_prices); __Pyx_DECREF_SET(__pyx_v_name, __pyx_n_s_prices); + /* "talib/_abstract.pxi":680 + * if 'real' in name: + * name = name.replace('real', 'price') + * elif 'price' in name: # <<<<<<<<<<<<<< + * name = 'prices' + * + */ } __pyx_L3:; + /* "talib/_abstract.pxi":683 + * name = 'prices' + * + * return { # <<<<<<<<<<<<<< + * 'name': name, + * 'price_series': __get_flags(info.flags, TA_INPUT_FLAGS) + */ __Pyx_XDECREF(__pyx_r); + /* "talib/_abstract.pxi":684 + * + * return { + * 'name': name, # <<<<<<<<<<<<<< + * 'price_series': __get_flags(info.flags, TA_INPUT_FLAGS) + * } + */ __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 684, __pyx_L1_error) + /* "talib/_abstract.pxi":685 + * return { + * 'name': name, + * 'price_series': __get_flags(info.flags, TA_INPUT_FLAGS) # <<<<<<<<<<<<<< + * } + * + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyInt_From_TA_InputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 685, __pyx_L1_error) @@ -58252,6 +74780,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN __pyx_t_4 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ /* function exit code */ __pyx_L1_error:; @@ -58270,6 +74805,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN return __pyx_r; } +/* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_353_ta_getOptInputParameterInfo(PyObject *__pyx_self, @@ -58405,13 +74947,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getOptInputParameterInfo", 1); + /* "talib/_abstract.pxi":694 + * """ + * cdef const lib.TA_OptInputParameterInfo *info + * retCode = lib.TA_GetOptInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GetOptInputParameterInfo', retCode) + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((TA_FuncHandle const *)NULL) && PyErr_Occurred())) __PYX_ERR(1, 694, __pyx_L1_error) __pyx_v_retCode = TA_GetOptInputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + /* "talib/_abstract.pxi":695 + * cdef const lib.TA_OptInputParameterInfo *info + * retCode = lib.TA_GetOptInputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) + * _ta_check_success('TA_GetOptInputParameterInfo', retCode) # <<<<<<<<<<<<<< + * + * name = bytes2str(info.paramName) + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 695, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":697 + * _ta_check_success('TA_GetOptInputParameterInfo', retCode) + * + * name = bytes2str(info.paramName) # <<<<<<<<<<<<<< + * name = name[len('optIn'):].lower() + * default_value = info.defaultValue + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 697, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 697, __pyx_L1_error) @@ -58442,6 +75005,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON __pyx_v_name = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":698 + * + * name = bytes2str(info.paramName) + * name = name[len('optIn'):].lower() # <<<<<<<<<<<<<< + * default_value = info.defaultValue + * if default_value % 1 == 0 and info.type > 1: + */ __pyx_t_7 = PyObject_Length(__pyx_n_s_optIn); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 698, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 698, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); @@ -58473,11 +75043,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":699 + * name = bytes2str(info.paramName) + * name = name[len('optIn'):].lower() + * default_value = info.defaultValue # <<<<<<<<<<<<<< + * if default_value % 1 == 0 and info.type > 1: + * default_value = int(default_value) + */ __pyx_t_2 = PyFloat_FromDouble(__pyx_v_info->defaultValue); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 699, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_default_value = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":700 + * name = name[len('optIn'):].lower() + * default_value = info.defaultValue + * if default_value % 1 == 0 and info.type > 1: # <<<<<<<<<<<<<< + * default_value = int(default_value) + * + */ __pyx_t_2 = __Pyx_PyInt_RemainderObjC(__pyx_v_default_value, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 700, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_t_9 = (__Pyx_PyInt_BoolEqObjC(__pyx_t_2, __pyx_int_0, 0, 0)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(1, 700, __pyx_L1_error) @@ -58492,19 +75076,54 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON __pyx_L4_bool_binop_done:; if (__pyx_t_8) { + /* "talib/_abstract.pxi":701 + * default_value = info.defaultValue + * if default_value % 1 == 0 and info.type > 1: + * default_value = int(default_value) # <<<<<<<<<<<<<< + * + * return { + */ __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_v_default_value); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 701, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_default_value, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":700 + * name = name[len('optIn'):].lower() + * default_value = info.defaultValue + * if default_value % 1 == 0 and info.type > 1: # <<<<<<<<<<<<<< + * default_value = int(default_value) + * + */ } + /* "talib/_abstract.pxi":703 + * default_value = int(default_value) + * + * return { # <<<<<<<<<<<<<< + * 'name': name, + * 'display_name': bytes2str(info.displayName), + */ __Pyx_XDECREF(__pyx_r); + /* "talib/_abstract.pxi":704 + * + * return { + * 'name': name, # <<<<<<<<<<<<<< + * 'display_name': bytes2str(info.displayName), + * 'type': info.type, + */ __pyx_t_2 = __Pyx_PyDict_NewPresized(6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 704, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 704, __pyx_L1_error) + /* "talib/_abstract.pxi":705 + * return { + * 'name': name, + * 'display_name': bytes2str(info.displayName), # <<<<<<<<<<<<<< + * 'type': info.type, + * 'help': bytes2str(info.hint), + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 705, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->displayName); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 705, __pyx_L1_error) @@ -58535,11 +75154,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_display_name, __pyx_t_4) < 0) __PYX_ERR(1, 704, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":706 + * 'name': name, + * 'display_name': bytes2str(info.displayName), + * 'type': info.type, # <<<<<<<<<<<<<< + * 'help': bytes2str(info.hint), + * 'default_value': default_value, + */ __pyx_t_4 = __Pyx_PyInt_From_TA_OptInputParameterType(__pyx_v_info->type); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 706, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_type_2, __pyx_t_4) < 0) __PYX_ERR(1, 704, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":707 + * 'display_name': bytes2str(info.displayName), + * 'type': info.type, + * 'help': bytes2str(info.hint), # <<<<<<<<<<<<<< + * 'default_value': default_value, + * 'value': None + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 707, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyBytes_FromString(__pyx_v_info->hint); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 707, __pyx_L1_error) @@ -58570,13 +75203,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_help, __pyx_t_4) < 0) __PYX_ERR(1, 704, __pyx_L1_error) __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_abstract.pxi":708 + * 'type': info.type, + * 'help': bytes2str(info.hint), + * 'default_value': default_value, # <<<<<<<<<<<<<< + * 'value': None + * } + */ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_default_value, __pyx_v_default_value) < 0) __PYX_ERR(1, 704, __pyx_L1_error) + /* "talib/_abstract.pxi":709 + * 'help': bytes2str(info.hint), + * 'default_value': default_value, + * 'value': None # <<<<<<<<<<<<<< + * } + * + */ if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_value, Py_None) < 0) __PYX_ERR(1, 704, __pyx_L1_error) __pyx_r = __pyx_t_2; __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ /* function exit code */ __pyx_L1_error:; @@ -58595,6 +75249,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_352_ta_getOptInputParameterInfo(CYTHON return __pyx_r; } +/* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_355_ta_getOutputParameterInfo(PyObject *__pyx_self, @@ -58731,13 +75392,34 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_ta_getOutputParameterInfo", 1); + /* "talib/_abstract.pxi":718 + * """ + * cdef const lib.TA_OutputParameterInfo *info + * retCode = lib.TA_GetOutputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GetOutputParameterInfo', retCode) + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((TA_FuncHandle const *)NULL) && PyErr_Occurred())) __PYX_ERR(1, 718, __pyx_L1_error) __pyx_v_retCode = TA_GetOutputParameterInfo(__pyx_t_1, __pyx_v_idx, (&__pyx_v_info)); + /* "talib/_abstract.pxi":719 + * cdef const lib.TA_OutputParameterInfo *info + * retCode = lib.TA_GetOutputParameterInfo(__ta_getFuncHandle(function_name), idx, &info) + * _ta_check_success('TA_GetOutputParameterInfo', retCode) # <<<<<<<<<<<<<< + * + * name = bytes2str(info.paramName) + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetOutputParameterInfo, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 719, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":721 + * _ta_check_success('TA_GetOutputParameterInfo', retCode) + * + * name = bytes2str(info.paramName) # <<<<<<<<<<<<<< + * name = name[len('out'):].lower() + * # chop off leading 'real' if a descriptive name follows + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_bytes2str); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 721, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_4 = __Pyx_PyBytes_FromString(__pyx_v_info->paramName); if (unlikely(!__pyx_t_4)) __PYX_ERR(1, 721, __pyx_L1_error) @@ -58768,6 +75450,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U __pyx_v_name = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":722 + * + * name = bytes2str(info.paramName) + * name = name[len('out'):].lower() # <<<<<<<<<<<<<< + * # chop off leading 'real' if a descriptive name follows + * if 'real' in name and name not in ['real', 'real0', 'real1']: + */ __pyx_t_7 = PyObject_Length(__pyx_n_s_out); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 722, __pyx_L1_error) __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); @@ -58799,6 +75488,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":724 + * name = name[len('out'):].lower() + * # chop off leading 'real' if a descriptive name follows + * if 'real' in name and name not in ['real', 'real0', 'real1']: # <<<<<<<<<<<<<< + * name = name[len('real'):] + * + */ __pyx_t_9 = (__Pyx_PySequence_ContainsTF(__pyx_n_s_real, __pyx_v_name, Py_EQ)); if (unlikely((__pyx_t_9 < 0))) __PYX_ERR(1, 724, __pyx_L1_error) if (__pyx_t_9) { } else { @@ -58828,20 +75524,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U __pyx_L4_bool_binop_done:; if (__pyx_t_8) { + /* "talib/_abstract.pxi":725 + * # chop off leading 'real' if a descriptive name follows + * if 'real' in name and name not in ['real', 'real0', 'real1']: + * name = name[len('real'):] # <<<<<<<<<<<<<< + * + * return { + */ __pyx_t_7 = PyObject_Length(__pyx_n_s_real); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(1, 725, __pyx_L1_error) __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_v_name, __pyx_t_7, 0, NULL, NULL, NULL, 1, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 725, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF_SET(__pyx_v_name, __pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":724 + * name = name[len('out'):].lower() + * # chop off leading 'real' if a descriptive name follows + * if 'real' in name and name not in ['real', 'real0', 'real1']: # <<<<<<<<<<<<<< + * name = name[len('real'):] + * + */ } + /* "talib/_abstract.pxi":727 + * name = name[len('real'):] + * + * return { # <<<<<<<<<<<<<< + * 'name': name, + * 'flags': __get_flags(info.flags, TA_OUTPUT_FLAGS) + */ __Pyx_XDECREF(__pyx_r); + /* "talib/_abstract.pxi":728 + * + * return { + * 'name': name, # <<<<<<<<<<<<<< + * 'flags': __get_flags(info.flags, TA_OUTPUT_FLAGS) + * } + */ __pyx_t_2 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 728, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_name, __pyx_v_name) < 0) __PYX_ERR(1, 728, __pyx_L1_error) + /* "talib/_abstract.pxi":729 + * return { + * 'name': name, + * 'flags': __get_flags(info.flags, TA_OUTPUT_FLAGS) # <<<<<<<<<<<<<< + * } + * + */ __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_flags); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 729, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __pyx_t_5 = __Pyx_PyInt_From_TA_OutputFlags(__pyx_v_info->flags); if (unlikely(!__pyx_t_5)) __PYX_ERR(1, 729, __pyx_L1_error) @@ -58878,6 +75609,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ /* function exit code */ __pyx_L1_error:; @@ -58896,6 +75634,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_354_ta_getOutputParameterInfo(CYTHON_U return __pyx_r; } +/* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ /* Python wrapper */ static PyObject *__pyx_pw_5talib_7_ta_lib_357_get_defaults_and_docs(PyObject *__pyx_self, @@ -59024,11 +75769,25 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE int __pyx_clineno = 0; __Pyx_RefNannySetupContext("_get_defaults_and_docs", 1); + /* "talib/_abstract.pxi":738 + * .. Note: func_info should come from Function.info, *not* _ta_getFuncInfo. + * """ + * defaults = {} # <<<<<<<<<<<<<< + * func_line = [func_info['name'], '('] + * func_args = ['[input_arrays]'] + */ __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 738, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_v_defaults = ((PyObject*)__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":739 + * """ + * defaults = {} + * func_line = [func_info['name'], '('] # <<<<<<<<<<<<<< + * func_args = ['[input_arrays]'] + * docs = [] + */ __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 739, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __pyx_t_2 = PyList_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 739, __pyx_L1_error) @@ -59042,6 +75801,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_v_func_line = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":740 + * defaults = {} + * func_line = [func_info['name'], '('] + * func_args = ['[input_arrays]'] # <<<<<<<<<<<<<< + * docs = [] + * docs.append('%(display_name)s (%(group)s)\n' % func_info) + */ __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 740, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_INCREF(__pyx_kp_s_input_arrays_2); @@ -59050,23 +75816,58 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_v_func_args = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":741 + * func_line = [func_info['name'], '('] + * func_args = ['[input_arrays]'] + * docs = [] # <<<<<<<<<<<<<< + * docs.append('%(display_name)s (%(group)s)\n' % func_info) + * + */ __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 741, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_docs = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":742 + * func_args = ['[input_arrays]'] + * docs = [] + * docs.append('%(display_name)s (%(group)s)\n' % func_info) # <<<<<<<<<<<<<< + * + * input_names = func_info['input_names'] + */ __pyx_t_2 = __Pyx_PyString_FormatSafe(__pyx_kp_s_display_name_s_group_s, __pyx_v_func_info); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 742, __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(1, 742, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":744 + * docs.append('%(display_name)s (%(group)s)\n' % func_info) + * + * input_names = func_info['input_names'] # <<<<<<<<<<<<<< + * docs.append('Inputs:') + * for input_name in input_names: + */ __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_input_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 744, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_input_names = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":745 + * + * input_names = func_info['input_names'] + * docs.append('Inputs:') # <<<<<<<<<<<<<< + * for input_name in input_names: + * value = input_names[input_name] + */ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Inputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 745, __pyx_L1_error) + /* "talib/_abstract.pxi":746 + * input_names = func_info['input_names'] + * docs.append('Inputs:') + * for input_name in input_names: # <<<<<<<<<<<<<< + * value = input_names[input_name] + * if not isinstance(value, list): + */ 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; @@ -59122,20 +75923,55 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __Pyx_XDECREF_SET(__pyx_v_input_name, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":747 + * docs.append('Inputs:') + * for input_name in input_names: + * value = input_names[input_name] # <<<<<<<<<<<<<< + * if not isinstance(value, list): + * value = '(any ndarray)' + */ __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_input_names, __pyx_v_input_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 747, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_XDECREF_SET(__pyx_v_value, __pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":748 + * for input_name in input_names: + * value = input_names[input_name] + * if not isinstance(value, list): # <<<<<<<<<<<<<< + * value = '(any ndarray)' + * docs.append(' %s: %s' % (input_name, value)) + */ __pyx_t_6 = PyList_Check(__pyx_v_value); __pyx_t_7 = (!__pyx_t_6); if (__pyx_t_7) { + /* "talib/_abstract.pxi":749 + * value = input_names[input_name] + * if not isinstance(value, list): + * value = '(any ndarray)' # <<<<<<<<<<<<<< + * docs.append(' %s: %s' % (input_name, value)) + * + */ __Pyx_INCREF(__pyx_kp_s_any_ndarray); __Pyx_DECREF_SET(__pyx_v_value, __pyx_kp_s_any_ndarray); + /* "talib/_abstract.pxi":748 + * for input_name in input_names: + * value = input_names[input_name] + * if not isinstance(value, list): # <<<<<<<<<<<<<< + * value = '(any ndarray)' + * docs.append(' %s: %s' % (input_name, value)) + */ } + /* "talib/_abstract.pxi":750 + * if not isinstance(value, list): + * value = '(any ndarray)' + * docs.append(' %s: %s' % (input_name, value)) # <<<<<<<<<<<<<< + * + * params = func_info['parameters'] + */ __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 750, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_INCREF(__pyx_v_input_name); @@ -59150,21 +75986,63 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 750, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":746 + * input_names = func_info['input_names'] + * docs.append('Inputs:') + * for input_name in input_names: # <<<<<<<<<<<<<< + * value = input_names[input_name] + * if not isinstance(value, list): + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":752 + * docs.append(' %s: %s' % (input_name, value)) + * + * params = func_info['parameters'] # <<<<<<<<<<<<<< + * if params: + * docs.append('Parameters:') + */ __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_parameters); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 752, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_params = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":753 + * + * params = func_info['parameters'] + * if params: # <<<<<<<<<<<<<< + * docs.append('Parameters:') + * for param in params: + */ __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_v_params); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(1, 753, __pyx_L1_error) if (__pyx_t_7) { + /* "talib/_abstract.pxi":754 + * params = func_info['parameters'] + * if params: + * docs.append('Parameters:') # <<<<<<<<<<<<<< + * for param in params: + * docs.append(' %s: %s' % (param, params[param])) + */ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Parameters); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 754, __pyx_L1_error) + /* "talib/_abstract.pxi":753 + * + * params = func_info['parameters'] + * if params: # <<<<<<<<<<<<<< + * docs.append('Parameters:') + * for param in params: + */ } + /* "talib/_abstract.pxi":755 + * if params: + * docs.append('Parameters:') + * for param in params: # <<<<<<<<<<<<<< + * docs.append(' %s: %s' % (param, params[param])) + * func_args.append('[%s=%s]' % (param, params[param])) + */ 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; @@ -59220,6 +76098,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __Pyx_XDECREF_SET(__pyx_v_param, __pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":756 + * docs.append('Parameters:') + * for param in params: + * docs.append(' %s: %s' % (param, params[param])) # <<<<<<<<<<<<<< + * func_args.append('[%s=%s]' % (param, params[param])) + * defaults[param] = params[param] + */ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 756, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 756, __pyx_L1_error) @@ -59236,6 +76121,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 756, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":757 + * for param in params: + * docs.append(' %s: %s' % (param, params[param])) + * func_args.append('[%s=%s]' % (param, params[param])) # <<<<<<<<<<<<<< + * defaults[param] = params[param] + * if param == 'matype': + */ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 757, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 757, __pyx_L1_error) @@ -59252,14 +76144,35 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_args, __pyx_t_8); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 757, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":758 + * docs.append(' %s: %s' % (param, params[param])) + * func_args.append('[%s=%s]' % (param, params[param])) + * defaults[param] = params[param] # <<<<<<<<<<<<<< + * if param == 'matype': + * docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]]) + */ __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_params, __pyx_v_param); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 758, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); if (unlikely((PyDict_SetItem(__pyx_v_defaults, __pyx_v_param, __pyx_t_8) < 0))) __PYX_ERR(1, 758, __pyx_L1_error) __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + /* "talib/_abstract.pxi":759 + * func_args.append('[%s=%s]' % (param, params[param])) + * defaults[param] = params[param] + * if param == 'matype': # <<<<<<<<<<<<<< + * docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]]) + * + */ __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_param, __pyx_n_s_matype, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(1, 759, __pyx_L1_error) if (__pyx_t_7) { + /* "talib/_abstract.pxi":760 + * defaults[param] = params[param] + * if param == 'matype': + * docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]]) # <<<<<<<<<<<<<< + * + * outputs = func_info['output_names'] + */ __pyx_t_8 = __Pyx_GetItemInt_List(__pyx_v_docs, -1L, long, 1, __Pyx_PyInt_From_long, 1, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_8); __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 760, __pyx_L1_error) @@ -59287,18 +76200,53 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE if (unlikely((__Pyx_SetItemInt(__pyx_v_docs, -1L, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 1, 1, 1) < 0))) __PYX_ERR(1, 760, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + /* "talib/_abstract.pxi":759 + * func_args.append('[%s=%s]' % (param, params[param])) + * defaults[param] = params[param] + * if param == 'matype': # <<<<<<<<<<<<<< + * docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]]) + * + */ } + /* "talib/_abstract.pxi":755 + * if params: + * docs.append('Parameters:') + * for param in params: # <<<<<<<<<<<<<< + * docs.append(' %s: %s' % (param, params[param])) + * func_args.append('[%s=%s]' % (param, params[param])) + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":762 + * docs[-1] = ' '.join([docs[-1], '(%s)' % MA_Type[params[param]]]) + * + * outputs = func_info['output_names'] # <<<<<<<<<<<<<< + * docs.append('Outputs:') + * for output in outputs: + */ __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_func_info, __pyx_n_s_output_names); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 762, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_outputs = __pyx_t_2; __pyx_t_2 = 0; + /* "talib/_abstract.pxi":763 + * + * outputs = func_info['output_names'] + * docs.append('Outputs:') # <<<<<<<<<<<<<< + * for output in outputs: + * if output == 'integer': + */ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_kp_s_Outputs); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 763, __pyx_L1_error) + /* "talib/_abstract.pxi":764 + * outputs = func_info['output_names'] + * docs.append('Outputs:') + * for output in outputs: # <<<<<<<<<<<<<< + * if output == 'integer': + * output = 'integer (values are -100, 0 or 100)' + */ 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; @@ -59354,39 +76302,109 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __Pyx_XDECREF_SET(__pyx_v_output, __pyx_t_9); __pyx_t_9 = 0; + /* "talib/_abstract.pxi":765 + * docs.append('Outputs:') + * for output in outputs: + * if output == 'integer': # <<<<<<<<<<<<<< + * output = 'integer (values are -100, 0 or 100)' + * docs.append(' %s' % output) + */ __pyx_t_7 = (__Pyx_PyString_Equals(__pyx_v_output, __pyx_n_s_integer, Py_EQ)); if (unlikely((__pyx_t_7 < 0))) __PYX_ERR(1, 765, __pyx_L1_error) if (__pyx_t_7) { + /* "talib/_abstract.pxi":766 + * for output in outputs: + * if output == 'integer': + * output = 'integer (values are -100, 0 or 100)' # <<<<<<<<<<<<<< + * docs.append(' %s' % output) + * + */ __Pyx_INCREF(__pyx_kp_s_integer_values_are_100_0_or_100); __Pyx_DECREF_SET(__pyx_v_output, __pyx_kp_s_integer_values_are_100_0_or_100); + /* "talib/_abstract.pxi":765 + * docs.append('Outputs:') + * for output in outputs: + * if output == 'integer': # <<<<<<<<<<<<<< + * output = 'integer (values are -100, 0 or 100)' + * docs.append(' %s' % output) + */ } + /* "talib/_abstract.pxi":767 + * if output == 'integer': + * output = 'integer (values are -100, 0 or 100)' + * docs.append(' %s' % output) # <<<<<<<<<<<<<< + * + * func_line.append(', '.join(func_args)) + */ __pyx_t_9 = __Pyx_PyString_FormatSafe(__pyx_kp_s_s_4, __pyx_v_output); if (unlikely(!__pyx_t_9)) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_9); __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_docs, __pyx_t_9); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 767, __pyx_L1_error) __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + /* "talib/_abstract.pxi":764 + * outputs = func_info['output_names'] + * docs.append('Outputs:') + * for output in outputs: # <<<<<<<<<<<<<< + * if output == 'integer': + * output = 'integer (values are -100, 0 or 100)' + */ } __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":769 + * docs.append(' %s' % output) + * + * func_line.append(', '.join(func_args)) # <<<<<<<<<<<<<< + * func_line.append(')\n') + * docs.insert(0, ''.join(func_line)) + */ __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__7, __pyx_v_func_args); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 769, __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(1, 769, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":770 + * + * func_line.append(', '.join(func_args)) + * func_line.append(')\n') # <<<<<<<<<<<<<< + * docs.insert(0, ''.join(func_line)) + * documentation = '\n'.join(docs) + */ __pyx_t_3 = __Pyx_PyList_Append(__pyx_v_func_line, __pyx_kp_s__11); if (unlikely(__pyx_t_3 == ((int)-1))) __PYX_ERR(1, 770, __pyx_L1_error) + /* "talib/_abstract.pxi":771 + * func_line.append(', '.join(func_args)) + * func_line.append(')\n') + * docs.insert(0, ''.join(func_line)) # <<<<<<<<<<<<<< + * documentation = '\n'.join(docs) + * return defaults, documentation + */ __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__6, __pyx_v_func_line); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 771, __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(1, 771, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":772 + * func_line.append(')\n') + * docs.insert(0, ''.join(func_line)) + * documentation = '\n'.join(docs) # <<<<<<<<<<<<<< + * return defaults, documentation + * + */ __pyx_t_2 = __Pyx_PyString_Join(__pyx_kp_s__12, __pyx_v_docs); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 772, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __pyx_v_documentation = ((PyObject*)__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":773 + * docs.insert(0, ''.join(func_line)) + * documentation = '\n'.join(docs) + * return defaults, documentation # <<<<<<<<<<<<<< + * + * + */ __Pyx_XDECREF(__pyx_r); __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 773, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); @@ -59400,6 +76418,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE __pyx_t_2 = 0; goto __pyx_L0; + /* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ /* function exit code */ __pyx_L1_error:; @@ -59428,6 +76453,13 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_356_get_defaults_and_docs(CYTHON_UNUSE return __pyx_r; } +/* "talib/_abstract.pxi":784 + * # - Setting TALIB paramholder optInput values and calling the lookback function + * + * cdef const lib.TA_FuncHandle* __ta_getFuncHandle(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns a pointer to a function handle for the given function name + */ static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__pyx_v_function_name) { TA_FuncHandle const *__pyx_v_handle; @@ -59439,13 +76471,34 @@ static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_getFuncHandle", 1); + /* "talib/_abstract.pxi":789 + * """ + * cdef const lib.TA_FuncHandle *handle + * _ta_check_success('TA_GetFuncHandle', lib.TA_GetFuncHandle(function_name, &handle)) # <<<<<<<<<<<<<< + * return handle + * + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetFuncHandle, TA_GetFuncHandle(__pyx_v_function_name, (&__pyx_v_handle)), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 789, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":790 + * cdef const lib.TA_FuncHandle *handle + * _ta_check_success('TA_GetFuncHandle', lib.TA_GetFuncHandle(function_name, &handle)) + * return handle # <<<<<<<<<<<<<< + * + * cdef lib.TA_ParamHolder* __ta_paramHolderAlloc(char *function_name): + */ __pyx_r = __pyx_v_handle; goto __pyx_L0; + /* "talib/_abstract.pxi":784 + * # - Setting TALIB paramholder optInput values and calling the lookback function + * + * cdef const lib.TA_FuncHandle* __ta_getFuncHandle(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns a pointer to a function handle for the given function name + */ /* function exit code */ __pyx_L1_error:; @@ -59457,6 +76510,13 @@ static TA_FuncHandle const *__pyx_f_5talib_7_ta_lib___ta_getFuncHandle(char *__p return __pyx_r; } +/* "talib/_abstract.pxi":792 + * return handle + * + * cdef lib.TA_ParamHolder* __ta_paramHolderAlloc(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns a pointer to a parameter holder for the given function name + */ static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx_v_function_name) { TA_ParamHolder *__pyx_v_holder; @@ -59470,16 +76530,44 @@ static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_paramHolderAlloc", 1); + /* "talib/_abstract.pxi":797 + * """ + * cdef lib.TA_ParamHolder *holder + * retCode = lib.TA_ParamHolderAlloc(__ta_getFuncHandle(function_name), &holder) # <<<<<<<<<<<<<< + * _ta_check_success('TA_ParamHolderAlloc', retCode) + * return holder + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib___ta_getFuncHandle(__pyx_v_function_name); if (unlikely(__pyx_t_1 == ((TA_FuncHandle const *)NULL) && PyErr_Occurred())) __PYX_ERR(1, 797, __pyx_L1_error) __pyx_v_retCode = TA_ParamHolderAlloc(__pyx_t_1, (&__pyx_v_holder)); + /* "talib/_abstract.pxi":798 + * cdef lib.TA_ParamHolder *holder + * retCode = lib.TA_ParamHolderAlloc(__ta_getFuncHandle(function_name), &holder) + * _ta_check_success('TA_ParamHolderAlloc', retCode) # <<<<<<<<<<<<<< + * return holder + * + */ __pyx_t_2 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ParamHolderAlloc, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 798, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":799 + * retCode = lib.TA_ParamHolderAlloc(__ta_getFuncHandle(function_name), &holder) + * _ta_check_success('TA_ParamHolderAlloc', retCode) + * return holder # <<<<<<<<<<<<<< + * + * cdef int __ta_paramHolderFree(lib.TA_ParamHolder *params): + */ __pyx_r = __pyx_v_holder; goto __pyx_L0; + /* "talib/_abstract.pxi":792 + * return handle + * + * cdef lib.TA_ParamHolder* __ta_paramHolderAlloc(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns a pointer to a parameter holder for the given function name + */ /* function exit code */ __pyx_L1_error:; @@ -59491,6 +76579,13 @@ static TA_ParamHolder *__pyx_f_5talib_7_ta_lib___ta_paramHolderAlloc(char *__pyx return __pyx_r; } +/* "talib/_abstract.pxi":801 + * return holder + * + * cdef int __ta_paramHolderFree(lib.TA_ParamHolder *params): # <<<<<<<<<<<<<< + * """ + * Frees the memory allocated by __ta_paramHolderAlloc (call when done with the parameter holder) + */ static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_params) { int __pyx_r; @@ -59501,10 +76596,24 @@ static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_ int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_paramHolderFree", 1); + /* "talib/_abstract.pxi":806 + * WARNING: Not properly calling this function will cause memory leaks! + * """ + * _ta_check_success('TA_ParamHolderFree', lib.TA_ParamHolderFree(params)) # <<<<<<<<<<<<<< + * + * cdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ParamHolderFree, TA_ParamHolderFree(__pyx_v_params), 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 806, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":801 + * return holder + * + * cdef int __ta_paramHolderFree(lib.TA_ParamHolder *params): # <<<<<<<<<<<<<< + * """ + * Frees the memory allocated by __ta_paramHolderAlloc (call when done with the parameter holder) + */ /* function exit code */ __pyx_r = 0; @@ -59518,6 +76627,13 @@ static int __pyx_f_5talib_7_ta_lib___ta_paramHolderFree(TA_ParamHolder *__pyx_v_ return __pyx_r; } +/* "talib/_abstract.pxi":808 + * _ta_check_success('TA_ParamHolderFree', lib.TA_ParamHolderFree(params)) + * + * cdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value): # <<<<<<<<<<<<<< + * retCode = lib.TA_SetOptInputParamInteger(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamInteger', retCode) + */ 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; @@ -59529,12 +76645,33 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder * int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_setOptInputParamInteger", 1); + /* "talib/_abstract.pxi":809 + * + * cdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value): + * retCode = lib.TA_SetOptInputParamInteger(holder, idx, value) # <<<<<<<<<<<<<< + * _ta_check_success('TA_SetOptInputParamInteger', retCode) + * + */ __pyx_v_retCode = TA_SetOptInputParamInteger(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + /* "talib/_abstract.pxi":810 + * cdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value): + * retCode = lib.TA_SetOptInputParamInteger(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamInteger', retCode) # <<<<<<<<<<<<<< + * + * cdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SetOptInputParamInteger, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 810, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":808 + * _ta_check_success('TA_ParamHolderFree', lib.TA_ParamHolderFree(params)) + * + * cdef int __ta_setOptInputParamInteger(lib.TA_ParamHolder *holder, int idx, int value): # <<<<<<<<<<<<<< + * retCode = lib.TA_SetOptInputParamInteger(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamInteger', retCode) + */ /* function exit code */ __pyx_r = 0; @@ -59548,6 +76685,13 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamInteger(TA_ParamHolder * return __pyx_r; } +/* "talib/_abstract.pxi":812 + * _ta_check_success('TA_SetOptInputParamInteger', retCode) + * + * cdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value): # <<<<<<<<<<<<<< + * retCode = lib.TA_SetOptInputParamReal(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamReal', retCode) + */ 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; @@ -59559,12 +76703,33 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__p int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_setOptInputParamReal", 1); + /* "talib/_abstract.pxi":813 + * + * cdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value): + * retCode = lib.TA_SetOptInputParamReal(holder, idx, value) # <<<<<<<<<<<<<< + * _ta_check_success('TA_SetOptInputParamReal', retCode) + * + */ __pyx_v_retCode = TA_SetOptInputParamReal(__pyx_v_holder, __pyx_v_idx, __pyx_v_value); + /* "talib/_abstract.pxi":814 + * cdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value): + * retCode = lib.TA_SetOptInputParamReal(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamReal', retCode) # <<<<<<<<<<<<<< + * + * cdef int __ta_getLookback(lib.TA_ParamHolder *holder): + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SetOptInputParamReal, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 814, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":812 + * _ta_check_success('TA_SetOptInputParamInteger', retCode) + * + * cdef int __ta_setOptInputParamReal(lib.TA_ParamHolder *holder, int idx, double value): # <<<<<<<<<<<<<< + * retCode = lib.TA_SetOptInputParamReal(holder, idx, value) + * _ta_check_success('TA_SetOptInputParamReal', retCode) + */ /* function exit code */ __pyx_r = 0; @@ -59578,6 +76743,13 @@ static int __pyx_f_5talib_7_ta_lib___ta_setOptInputParamReal(TA_ParamHolder *__p return __pyx_r; } +/* "talib/_abstract.pxi":816 + * _ta_check_success('TA_SetOptInputParamReal', retCode) + * + * cdef int __ta_getLookback(lib.TA_ParamHolder *holder): # <<<<<<<<<<<<<< + * cdef int lookback + * retCode = lib.TA_GetLookback(holder, &lookback) + */ static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_holder) { int __pyx_v_lookback; @@ -59590,15 +76762,40 @@ static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_hold int __pyx_clineno = 0; __Pyx_RefNannySetupContext("__ta_getLookback", 1); + /* "talib/_abstract.pxi":818 + * cdef int __ta_getLookback(lib.TA_ParamHolder *holder): + * cdef int lookback + * retCode = lib.TA_GetLookback(holder, &lookback) # <<<<<<<<<<<<<< + * _ta_check_success('TA_GetLookback', retCode) + * return lookback + */ __pyx_v_retCode = TA_GetLookback(__pyx_v_holder, (&__pyx_v_lookback)); + /* "talib/_abstract.pxi":819 + * cdef int lookback + * retCode = lib.TA_GetLookback(holder, &lookback) + * _ta_check_success('TA_GetLookback', retCode) # <<<<<<<<<<<<<< + * return lookback + */ __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_GetLookback, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(1, 819, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + /* "talib/_abstract.pxi":820 + * retCode = lib.TA_GetLookback(holder, &lookback) + * _ta_check_success('TA_GetLookback', retCode) + * return lookback # <<<<<<<<<<<<<< + */ __pyx_r = __pyx_v_lookback; goto __pyx_L0; + /* "talib/_abstract.pxi":816 + * _ta_check_success('TA_SetOptInputParamReal', retCode) + * + * cdef int __ta_getLookback(lib.TA_ParamHolder *holder): # <<<<<<<<<<<<<< + * cdef int lookback + * retCode = lib.TA_GetLookback(holder, &lookback) + */ /* function exit code */ __pyx_L1_error:; @@ -59610,42159 +76807,9732 @@ static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_hold return __pyx_r; } - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) #else -PyObject *__pyx_args, PyObject *__pyx_kwds + #define CYTHON_SMALL_CODE #endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358stream_ACOS, " ACOS(real)\n\n Vector Trigonometric ACos (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359stream_ACOS = {"stream_ACOS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358stream_ACOS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ACOS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 9, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ACOS") < 0)) __PYX_ERR(4, 9, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 9, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 11, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_358stream_ACOS(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ACOS", 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(4, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 29, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 30, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ACOS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 33, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - +/* #### Code section: pystring_table ### */ -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360stream_AD, " AD(high, low, close, volume)\n\n Chaikin A/D Line (Volume Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361stream_AD = {"stream_AD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360stream_AD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_AD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 1); __PYX_ERR(4, 36, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 2); __PYX_ERR(4, 36, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 3); __PYX_ERR(4, 36, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AD") < 0)) __PYX_ERR(4, 36, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 36, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 38, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 38, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 38, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 38, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_360stream_AD(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_AD", 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(4, 58, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 59, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 60, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 61, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 62, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 63, __pyx_L1_error) - __pyx_v_close_data = ((double *)__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(4, 64, __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_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 65, __pyx_L1_error) - __pyx_v_volume_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 66, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_AD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 70, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362stream_ADD, " ADD(real0, real1)\n\n Vector Arithmetic Add (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363stream_ADD = {"stream_ADD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362stream_ADD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ADD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 72, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 72, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, 1); __PYX_ERR(4, 72, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADD") < 0)) __PYX_ERR(4, 72, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 72, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 74, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 74, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_362stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADD", 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(4, 93, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 94, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 95, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 96, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 97, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ADD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364stream_ADOSC, " ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n Chaikin A/D Oscillator (Volume Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Parameters:\n fastperiod: 3\n slowperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364stream_ADOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_fastperiod; - int __pyx_v_slowperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_ADOSC (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 1); __PYX_ERR(4, 103, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 2); __PYX_ERR(4, 103, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 3); __PYX_ERR(4, 103, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADOSC") < 0)) __PYX_ERR(4, 103, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_fastperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 105, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 105, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 103, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 105, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 105, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_364stream_ADOSC(__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; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADOSC", 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(4, 128, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 129, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 130, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 131, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 132, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 133, __pyx_L1_error) - __pyx_v_close_data = ((double *)__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(4, 134, __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_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 135, __pyx_L1_error) - __pyx_v_volume_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 136, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ADOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 140, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366stream_ADX, " ADX(high, low, close[, timeperiod=?])\n\n Average Directional Movement Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367stream_ADX = {"stream_ADX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366stream_ADX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ADX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 1); __PYX_ERR(4, 142, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 2); __PYX_ERR(4, 142, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADX") < 0)) __PYX_ERR(4, 142, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 144, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_366stream_ADX(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ADX(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADX", 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(4, 165, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 166, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 167, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 168, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 169, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 170, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 171, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ADX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 174, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368stream_ADXR, " ADXR(high, low, close[, timeperiod=?])\n\n Average Directional Movement Index Rating (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369stream_ADXR = {"stream_ADXR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368stream_ADXR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ADXR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 1); __PYX_ERR(4, 177, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 2); __PYX_ERR(4, 177, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADXR") < 0)) __PYX_ERR(4, 177, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 179, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 177, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 179, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 179, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 179, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_368stream_ADXR(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_ADXR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ADXR", 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(4, 200, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 201, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 202, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 203, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 204, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 205, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 206, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ADXR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370stream_APO, " APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n Absolute Price Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371stream_APO = {"stream_APO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370stream_APO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_METH_FASTCALL - 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("stream_APO (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_APO") < 0)) __PYX_ERR(4, 212, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 212, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 214, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_370stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_APO(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_APO", 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(4, 235, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 236, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 237, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_APO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 240, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_373stream_AROON(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372stream_AROON, " AROON(high, low[, timeperiod=?])\n\n Aroon (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n aroondown\n aroonup\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373stream_AROON = {"stream_AROON", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372stream_AROON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_AROON(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_AROON (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, 1); __PYX_ERR(4, 243, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AROON") < 0)) __PYX_ERR(4, 243, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 245, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 243, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 245, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 245, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_372stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outaroondown; - double __pyx_v_outaroonup; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __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("stream_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(4, 267, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 268, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 269, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 270, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 271, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_AROON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 275, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 276, __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)) __PYX_ERR(4, 276, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 276, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374stream_AROONOSC, " AROONOSC(high, low[, timeperiod=?])\n\n Aroon Oscillator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374stream_AROONOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_AROONOSC (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, 1); __PYX_ERR(4, 278, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AROONOSC") < 0)) __PYX_ERR(4, 278, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 280, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 278, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 280, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 280, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 300, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 301, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 302, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 303, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 304, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_AROONOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 307, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376stream_ASIN, " ASIN(real)\n\n Vector Trigonometric ASin (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377stream_ASIN = {"stream_ASIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376stream_ASIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ASIN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 310, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ASIN") < 0)) __PYX_ERR(4, 310, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 310, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 312, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_376stream_ASIN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ASIN", 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(4, 329, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 330, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 331, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ASIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_379stream_ATAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378stream_ATAN, " ATAN(real)\n\n Vector Trigonometric ATan (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379stream_ATAN = {"stream_ATAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378stream_ATAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_ATAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ATAN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 337, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ATAN") < 0)) __PYX_ERR(4, 337, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 337, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 339, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_378stream_ATAN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 357, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 358, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ATAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 362, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_381stream_ATR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380stream_ATR, " ATR(high, low, close[, timeperiod=?])\n\n Average True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381stream_ATR = {"stream_ATR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380stream_ATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_ATR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ATR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 1); __PYX_ERR(4, 364, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 2); __PYX_ERR(4, 364, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ATR") < 0)) __PYX_ERR(4, 364, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 364, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 366, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 366, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 366, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_380stream_ATR(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 387, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 388, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 389, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 390, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 391, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 392, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 393, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 396, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE, " AVGPRICE(open, high, low, close)\n\n Average Price (Price Transform)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_AVGPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 1); __PYX_ERR(4, 399, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 2); __PYX_ERR(4, 399, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 3); __PYX_ERR(4, 399, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AVGPRICE") < 0)) __PYX_ERR(4, 399, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 399, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 401, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 401, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 401, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 401, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 422, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 423, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 424, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 425, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 426, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 427, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 428, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 429, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_AVGPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 433, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384stream_BBANDS, " BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n Bollinger Bands (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\n Outputs:\n upperband\n middleband\n lowerband\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384stream_BBANDS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_nbdevup; - double __pyx_v_nbdevdn; - int __pyx_v_matype; - #if !CYTHON_METH_FASTCALL - 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("stream_BBANDS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdevup,&__pyx_n_s_nbdevdn,&__pyx_n_s_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdevup); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdevdn); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BBANDS") < 0)) __PYX_ERR(4, 435, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 437, __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(4, 437, __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(4, 437, __pyx_L3_error) - } else { - __pyx_v_nbdevdn = ((double)((double)-4e37)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 437, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 435, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 437, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_384stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outrealupperband; - double __pyx_v_outrealmiddleband; - double __pyx_v_outreallowerband; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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; - __Pyx_RefNannySetupContext("stream_BBANDS", 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(4, 463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 464, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 465, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_BBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 471, __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)) __PYX_ERR(4, 471, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4)) __PYX_ERR(4, 471, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5)) __PYX_ERR(4, 471, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __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.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_387stream_BETA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386stream_BETA, " BETA(real0, real1[, timeperiod=?])\n\n Beta (Statistic Functions)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Parameters:\n timeperiod: 5\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387stream_BETA = {"stream_BETA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386stream_BETA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_BETA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_BETA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, 1); __PYX_ERR(4, 473, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BETA") < 0)) __PYX_ERR(4, 473, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 473, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 475, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 475, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_386stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 497, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 498, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 499, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 500, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_BETA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388stream_BOP, " BOP(open, high, low, close)\n\n Balance Of Power (Momentum Indicators)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389stream_BOP = {"stream_BOP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388stream_BOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_BOP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 1); __PYX_ERR(4, 506, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 2); __PYX_ERR(4, 506, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 3); __PYX_ERR(4, 506, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BOP") < 0)) __PYX_ERR(4, 506, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 506, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 508, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_388stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_BOP(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 528, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 529, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 530, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 531, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 532, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 533, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 534, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 535, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 536, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_BOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390stream_CCI, " CCI(high, low, close[, timeperiod=?])\n\n Commodity Channel Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391stream_CCI = {"stream_CCI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390stream_CCI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CCI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 1); __PYX_ERR(4, 542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 2); __PYX_ERR(4, 542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CCI") < 0)) __PYX_ERR(4, 542, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 544, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 542, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 544, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 544, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 544, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_390stream_CCI(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 565, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 566, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 567, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 568, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 569, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 570, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 571, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_CCI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 574, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS, " CDL2CROWS(open, high, low, close)\n\n Two Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL2CROWS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 1); __PYX_ERR(4, 577, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 2); __PYX_ERR(4, 577, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 3); __PYX_ERR(4, 577, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL2CROWS") < 0)) __PYX_ERR(4, 577, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 577, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 579, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 579, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 599, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 600, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 601, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 602, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 603, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 604, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 605, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 606, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 607, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 611, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS, " CDL3BLACKCROWS(open, high, low, close)\n\n Three Black Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3BLACKCROWS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 1); __PYX_ERR(4, 613, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 2); __PYX_ERR(4, 613, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 3); __PYX_ERR(4, 613, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3BLACKCROWS") < 0)) __PYX_ERR(4, 613, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 613, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 615, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 615, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 615, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 615, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 635, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 636, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 637, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 638, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 639, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 640, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 641, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 642, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 643, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3BLACKCROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 646, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE, " CDL3INSIDE(open, high, low, close)\n\n Three Inside Up/Down (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3INSIDE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 1); __PYX_ERR(4, 649, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 2); __PYX_ERR(4, 649, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 3); __PYX_ERR(4, 649, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3INSIDE") < 0)) __PYX_ERR(4, 649, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 649, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 651, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 651, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 671, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 672, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 673, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 674, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 675, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 676, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 677, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 678, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 679, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3INSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE, " CDL3LINESTRIKE(open, high, low, close)\n\n Three-Line Strike (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3LINESTRIKE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 1); __PYX_ERR(4, 685, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 2); __PYX_ERR(4, 685, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 3); __PYX_ERR(4, 685, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3LINESTRIKE") < 0)) __PYX_ERR(4, 685, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 685, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 687, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 687, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 687, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 687, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 707, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 708, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 709, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 710, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 711, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 712, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 713, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 714, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 715, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3LINESTRIKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 718, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 719, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE, " CDL3OUTSIDE(open, high, low, close)\n\n Three Outside Up/Down (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3OUTSIDE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 1); __PYX_ERR(4, 721, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 2); __PYX_ERR(4, 721, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 3); __PYX_ERR(4, 721, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3OUTSIDE") < 0)) __PYX_ERR(4, 721, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 721, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 723, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 723, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 744, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 745, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 746, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 747, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 748, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 749, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 750, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 751, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3OUTSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 754, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH, " CDL3STARSINSOUTH(open, high, low, close)\n\n Three Stars In The South (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3STARSINSOUTH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 1); __PYX_ERR(4, 757, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 2); __PYX_ERR(4, 757, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 3); __PYX_ERR(4, 757, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3STARSINSOUTH") < 0)) __PYX_ERR(4, 757, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 757, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 759, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 759, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 779, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 780, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 781, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 782, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 783, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 784, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 785, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 786, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 787, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3STARSINSOUTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 791, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS, " CDL3WHITESOLDIERS(open, high, low, close)\n\n Three Advancing White Soldiers (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDL3WHITESOLDIERS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 1); __PYX_ERR(4, 793, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 2); __PYX_ERR(4, 793, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 3); __PYX_ERR(4, 793, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3WHITESOLDIERS") < 0)) __PYX_ERR(4, 793, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 793, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 795, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 795, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 795, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 795, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 816, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 817, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 818, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 820, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 821, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 822, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 823, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDL3WHITESOLDIERS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 826, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY, " CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n Abandoned Baby (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLABANDONEDBABY (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 1); __PYX_ERR(4, 829, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 2); __PYX_ERR(4, 829, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 3); __PYX_ERR(4, 829, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLABANDONEDBABY") < 0)) __PYX_ERR(4, 829, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 831, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 829, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 831, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 831, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 831, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 831, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 853, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 854, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 855, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 856, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 857, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 858, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 859, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 860, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 861, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLABANDONEDBABY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 864, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 865, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK, " CDLADVANCEBLOCK(open, high, low, close)\n\n Advance Block (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLADVANCEBLOCK (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 1); __PYX_ERR(4, 867, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 2); __PYX_ERR(4, 867, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 3); __PYX_ERR(4, 867, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLADVANCEBLOCK") < 0)) __PYX_ERR(4, 867, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 867, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 869, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 869, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 889, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 890, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 892, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 893, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 894, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 895, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 896, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 897, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLADVANCEBLOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD, " CDLBELTHOLD(open, high, low, close)\n\n Belt-hold (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLBELTHOLD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 1); __PYX_ERR(4, 903, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 2); __PYX_ERR(4, 903, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 3); __PYX_ERR(4, 903, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLBELTHOLD") < 0)) __PYX_ERR(4, 903, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 903, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 905, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 905, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 905, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 905, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 925, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 926, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 927, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 928, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 929, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 930, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 931, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 932, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 933, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLBELTHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 937, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY, " CDLBREAKAWAY(open, high, low, close)\n\n Breakaway (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY}; -static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLBREAKAWAY (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 1); __PYX_ERR(4, 939, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 2); __PYX_ERR(4, 939, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 3); __PYX_ERR(4, 939, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLBREAKAWAY") < 0)) __PYX_ERR(4, 939, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 939, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 941, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 941, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 941, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 941, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 961, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 962, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 963, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 964, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 965, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 966, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 967, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 968, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 969, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLBREAKAWAY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 972, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 973, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU, " CDLCLOSINGMARUBOZU(open, high, low, close)\n\n Closing Marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLCLOSINGMARUBOZU (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 1); __PYX_ERR(4, 975, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 2); __PYX_ERR(4, 975, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 3); __PYX_ERR(4, 975, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCLOSINGMARUBOZU") < 0)) __PYX_ERR(4, 975, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 975, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 977, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 977, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 977, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 977, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 998, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 999, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1000, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1001, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1002, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1003, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1004, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1005, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1008, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1009, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL, " CDLCONCEALBABYSWALL(open, high, low, close)\n\n Concealing Baby Swallow (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLCONCEALBABYSWALL (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 1); __PYX_ERR(4, 1011, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 2); __PYX_ERR(4, 1011, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 3); __PYX_ERR(4, 1011, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCONCEALBABYSWALL") < 0)) __PYX_ERR(4, 1011, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1011, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1033, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1034, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1035, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1036, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1037, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1038, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1039, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1040, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1041, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLCONCEALBABYSWALL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK, " CDLCOUNTERATTACK(open, high, low, close)\n\n Counterattack (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLCOUNTERATTACK (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 1); __PYX_ERR(4, 1047, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 2); __PYX_ERR(4, 1047, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 3); __PYX_ERR(4, 1047, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCOUNTERATTACK") < 0)) __PYX_ERR(4, 1047, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1047, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1069, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1070, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1071, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1072, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1073, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1074, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1075, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1076, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1077, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLCOUNTERATTACK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1080, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER, " CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n Dark Cloud Cover (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.5\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLDARKCLOUDCOVER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 1); __PYX_ERR(4, 1083, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 2); __PYX_ERR(4, 1083, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 3); __PYX_ERR(4, 1083, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDARKCLOUDCOVER") < 0)) __PYX_ERR(4, 1083, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 1085, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1083, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1108, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1109, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1110, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1111, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1112, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1113, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1114, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1115, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLDARKCLOUDCOVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI, " CDLDOJI(open, high, low, close)\n\n Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLDOJI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1121, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1121, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1121, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDOJI") < 0)) __PYX_ERR(4, 1121, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1121, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1143, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1144, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1145, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1146, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1147, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1148, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1149, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1150, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1151, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1155, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR, " CDLDOJISTAR(open, high, low, close)\n\n Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLDOJISTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 1); __PYX_ERR(4, 1157, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 2); __PYX_ERR(4, 1157, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 3); __PYX_ERR(4, 1157, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDOJISTAR") < 0)) __PYX_ERR(4, 1157, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1157, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1180, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1181, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1182, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1183, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1184, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1185, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1186, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1187, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI, " CDLDRAGONFLYDOJI(open, high, low, close)\n\n Dragonfly Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLDRAGONFLYDOJI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1193, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1193, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1193, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDRAGONFLYDOJI") < 0)) __PYX_ERR(4, 1193, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1193, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1215, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1216, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1217, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1218, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1219, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1220, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1221, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1222, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1223, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLDRAGONFLYDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1226, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING, " CDLENGULFING(open, high, low, close)\n\n Engulfing Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLENGULFING (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 1); __PYX_ERR(4, 1229, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 2); __PYX_ERR(4, 1229, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 3); __PYX_ERR(4, 1229, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLENGULFING") < 0)) __PYX_ERR(4, 1229, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1229, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1252, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1253, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1254, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1255, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1256, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1257, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1258, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1259, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLENGULFING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1262, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR, " CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n Evening Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLEVENINGDOJISTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(4, 1265, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(4, 1265, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(4, 1265, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLEVENINGDOJISTAR") < 0)) __PYX_ERR(4, 1265, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 1267, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1265, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1289, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1290, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1291, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1292, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1293, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1294, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1295, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1296, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1297, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLEVENINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1300, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR, " CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n Evening Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLEVENINGSTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 1); __PYX_ERR(4, 1303, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 2); __PYX_ERR(4, 1303, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 3); __PYX_ERR(4, 1303, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLEVENINGSTAR") < 0)) __PYX_ERR(4, 1303, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 1305, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1303, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1327, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1328, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1329, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1330, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1331, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1332, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1333, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1334, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1335, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLEVENINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1338, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1339, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE, " CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 1); __PYX_ERR(4, 1341, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 2); __PYX_ERR(4, 1341, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 3); __PYX_ERR(4, 1341, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLGAPSIDESIDEWHITE") < 0)) __PYX_ERR(4, 1341, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1341, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1364, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1365, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1366, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1367, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1368, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1369, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1370, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1371, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1375, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI, " CDLGRAVESTONEDOJI(open, high, low, close)\n\n Gravestone Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLGRAVESTONEDOJI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1377, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1377, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1377, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLGRAVESTONEDOJI") < 0)) __PYX_ERR(4, 1377, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1377, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1400, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1402, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1403, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1404, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1405, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1406, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1407, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLGRAVESTONEDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1410, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER, " CDLHAMMER(open, high, low, close)\n\n Hammer (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHAMMER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 1); __PYX_ERR(4, 1413, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 2); __PYX_ERR(4, 1413, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 3); __PYX_ERR(4, 1413, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHAMMER") < 0)) __PYX_ERR(4, 1413, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1413, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1436, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1437, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1438, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1439, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1440, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1441, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1442, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1443, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1447, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN, " CDLHANGINGMAN(open, high, low, close)\n\n Hanging Man (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHANGINGMAN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 1); __PYX_ERR(4, 1449, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 2); __PYX_ERR(4, 1449, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 3); __PYX_ERR(4, 1449, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHANGINGMAN") < 0)) __PYX_ERR(4, 1449, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1449, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1471, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1472, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1473, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1474, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1475, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1476, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1477, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1478, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1479, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHANGINGMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1482, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1483, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI, " CDLHARAMI(open, high, low, close)\n\n Harami Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHARAMI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 1); __PYX_ERR(4, 1485, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 2); __PYX_ERR(4, 1485, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 3); __PYX_ERR(4, 1485, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHARAMI") < 0)) __PYX_ERR(4, 1485, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1485, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1508, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1509, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1510, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1511, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1512, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1513, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1514, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1515, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHARAMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1518, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1519, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS, " CDLHARAMICROSS(open, high, low, close)\n\n Harami Cross Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHARAMICROSS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 1); __PYX_ERR(4, 1521, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 2); __PYX_ERR(4, 1521, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 3); __PYX_ERR(4, 1521, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHARAMICROSS") < 0)) __PYX_ERR(4, 1521, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1521, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1543, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1544, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1545, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1546, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1547, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1548, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1549, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1550, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1551, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHARAMICROSS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1555, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE, " CDLHIGHWAVE(open, high, low, close)\n\n High-Wave Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHIGHWAVE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 1); __PYX_ERR(4, 1557, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 2); __PYX_ERR(4, 1557, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 3); __PYX_ERR(4, 1557, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIGHWAVE") < 0)) __PYX_ERR(4, 1557, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1557, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1580, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1581, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1582, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1583, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1584, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1585, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1586, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1587, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHIGHWAVE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1590, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1591, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE, " CDLHIKKAKE(open, high, low, close)\n\n Hikkake Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHIKKAKE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 1); __PYX_ERR(4, 1593, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 2); __PYX_ERR(4, 1593, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 3); __PYX_ERR(4, 1593, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIKKAKE") < 0)) __PYX_ERR(4, 1593, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1593, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1616, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1617, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1618, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1620, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1621, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1622, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1623, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHIKKAKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1626, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1627, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD, " CDLHIKKAKEMOD(open, high, low, close)\n\n Modified Hikkake Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHIKKAKEMOD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 1); __PYX_ERR(4, 1629, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 2); __PYX_ERR(4, 1629, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 3); __PYX_ERR(4, 1629, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIKKAKEMOD") < 0)) __PYX_ERR(4, 1629, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1629, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1651, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1652, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1653, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1654, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1655, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1656, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1657, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1658, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1659, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHIKKAKEMOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON, " CDLHOMINGPIGEON(open, high, low, close)\n\n Homing Pigeon (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON}; -static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLHOMINGPIGEON (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 1); __PYX_ERR(4, 1665, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 2); __PYX_ERR(4, 1665, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 3); __PYX_ERR(4, 1665, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHOMINGPIGEON") < 0)) __PYX_ERR(4, 1665, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1665, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1688, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1689, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1690, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1691, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1692, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1693, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1694, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1695, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLHOMINGPIGEON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1698, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1699, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS, " CDLIDENTICAL3CROWS(open, high, low, close)\n\n Identical Three Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLIDENTICAL3CROWS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 1); __PYX_ERR(4, 1701, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 2); __PYX_ERR(4, 1701, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 3); __PYX_ERR(4, 1701, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLIDENTICAL3CROWS") < 0)) __PYX_ERR(4, 1701, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1701, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1723, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1724, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1725, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1726, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1727, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1728, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1729, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1730, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1731, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLIDENTICAL3CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1734, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK, " CDLINNECK(open, high, low, close)\n\n In-Neck Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLINNECK (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 1); __PYX_ERR(4, 1737, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 2); __PYX_ERR(4, 1737, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 3); __PYX_ERR(4, 1737, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLINNECK") < 0)) __PYX_ERR(4, 1737, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1737, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1760, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1761, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1762, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1763, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1764, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1765, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1766, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1767, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLINNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER, " CDLINVERTEDHAMMER(open, high, low, close)\n\n Inverted Hammer (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLINVERTEDHAMMER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 1); __PYX_ERR(4, 1773, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 2); __PYX_ERR(4, 1773, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 3); __PYX_ERR(4, 1773, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLINVERTEDHAMMER") < 0)) __PYX_ERR(4, 1773, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1773, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1795, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1796, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1797, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1798, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1799, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1800, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1801, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1802, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1803, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLINVERTEDHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1807, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING, " CDLKICKING(open, high, low, close)\n\n Kicking (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLKICKING (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 1); __PYX_ERR(4, 1809, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 2); __PYX_ERR(4, 1809, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 3); __PYX_ERR(4, 1809, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLKICKING") < 0)) __PYX_ERR(4, 1809, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1809, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1832, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1833, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1834, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1835, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1836, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1837, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1838, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1839, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLKICKING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1842, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH, " CDLKICKINGBYLENGTH(open, high, low, close)\n\n Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLKICKINGBYLENGTH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 1); __PYX_ERR(4, 1845, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 2); __PYX_ERR(4, 1845, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 3); __PYX_ERR(4, 1845, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLKICKINGBYLENGTH") < 0)) __PYX_ERR(4, 1845, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1845, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1868, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1869, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1870, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1871, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1872, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1873, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1874, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1875, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLKICKINGBYLENGTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1878, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1879, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM, " CDLLADDERBOTTOM(open, high, low, close)\n\n Ladder Bottom (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLLADDERBOTTOM (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 1); __PYX_ERR(4, 1881, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 2); __PYX_ERR(4, 1881, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 3); __PYX_ERR(4, 1881, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLADDERBOTTOM") < 0)) __PYX_ERR(4, 1881, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1881, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1904, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1905, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1906, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1907, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1908, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1909, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1910, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1911, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLLADDERBOTTOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1914, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1915, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI, " CDLLONGLEGGEDDOJI(open, high, low, close)\n\n Long Legged Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLLONGLEGGEDDOJI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1917, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1917, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1917, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLONGLEGGEDDOJI") < 0)) __PYX_ERR(4, 1917, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1917, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1940, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1941, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1942, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1943, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1944, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1945, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1946, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1947, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1950, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE, " CDLLONGLINE(open, high, low, close)\n\n Long Line Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLLONGLINE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 1); __PYX_ERR(4, 1953, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 2); __PYX_ERR(4, 1953, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 3); __PYX_ERR(4, 1953, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLONGLINE") < 0)) __PYX_ERR(4, 1953, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1953, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 1975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1976, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1977, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1978, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1979, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1980, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 1981, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 1982, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 1983, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLLONGLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1987, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU, " CDLMARUBOZU(open, high, low, close)\n\n Marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU}; -static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLMARUBOZU (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 1); __PYX_ERR(4, 1989, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 2); __PYX_ERR(4, 1989, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 3); __PYX_ERR(4, 1989, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMARUBOZU") < 0)) __PYX_ERR(4, 1989, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1989, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2011, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2012, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2013, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2014, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2015, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2016, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2017, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2018, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2019, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW, " CDLMATCHINGLOW(open, high, low, close)\n\n Matching Low (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW}; -static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLMATCHINGLOW (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 1); __PYX_ERR(4, 2025, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 2); __PYX_ERR(4, 2025, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 3); __PYX_ERR(4, 2025, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMATCHINGLOW") < 0)) __PYX_ERR(4, 2025, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2025, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2048, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2049, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2050, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2051, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2052, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2053, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2054, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2055, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLMATCHINGLOW((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2059, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD, " CDLMATHOLD(open, high, low, close[, penetration=?])\n\n Mat Hold (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.5\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLMATHOLD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 1); __PYX_ERR(4, 2061, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 2); __PYX_ERR(4, 2061, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 3); __PYX_ERR(4, 2061, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMATHOLD") < 0)) __PYX_ERR(4, 2061, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 2063, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.5)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2061, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2086, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2087, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2088, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2089, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2090, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2091, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2092, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2093, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLMATHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2096, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR, " CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n Morning Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLMORNINGDOJISTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(4, 2099, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(4, 2099, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(4, 2099, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMORNINGDOJISTAR") < 0)) __PYX_ERR(4, 2099, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 2101, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2099, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2124, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2125, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2126, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2127, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2128, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2129, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2130, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2131, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLMORNINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR, " CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n Morning Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - double __pyx_v_penetration; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLMORNINGSTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 1); __PYX_ERR(4, 2137, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 2); __PYX_ERR(4, 2137, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 3); __PYX_ERR(4, 2137, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMORNINGSTAR") < 0)) __PYX_ERR(4, 2137, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 2139, __pyx_L3_error) - } else { - __pyx_v_penetration = ((double)((double)0.3)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2137, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2161, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2162, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2163, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2164, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2165, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2166, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2167, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2168, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2169, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLMORNINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2173, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK, " CDLONNECK(open, high, low, close)\n\n On-Neck Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK}; -static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLONNECK (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 1); __PYX_ERR(4, 2175, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 2); __PYX_ERR(4, 2175, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 3); __PYX_ERR(4, 2175, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLONNECK") < 0)) __PYX_ERR(4, 2175, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2175, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2198, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2199, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2200, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2201, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2202, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2203, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2204, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2205, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLONNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING, " CDLPIERCING(open, high, low, close)\n\n Piercing Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLPIERCING (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 1); __PYX_ERR(4, 2211, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 2); __PYX_ERR(4, 2211, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 3); __PYX_ERR(4, 2211, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLPIERCING") < 0)) __PYX_ERR(4, 2211, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2211, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2233, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2234, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2235, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2236, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2237, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2238, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2239, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2240, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2241, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLPIERCING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2245, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN, " CDLRICKSHAWMAN(open, high, low, close)\n\n Rickshaw Man (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLRICKSHAWMAN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 1); __PYX_ERR(4, 2247, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 2); __PYX_ERR(4, 2247, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 3); __PYX_ERR(4, 2247, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLRICKSHAWMAN") < 0)) __PYX_ERR(4, 2247, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2247, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2270, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2271, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2272, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2273, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2274, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2275, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2276, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2277, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLRICKSHAWMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2280, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2281, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS, " CDLRISEFALL3METHODS(open, high, low, close)\n\n Rising/Falling Three Methods (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLRISEFALL3METHODS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 1); __PYX_ERR(4, 2283, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 2); __PYX_ERR(4, 2283, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 3); __PYX_ERR(4, 2283, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLRISEFALL3METHODS") < 0)) __PYX_ERR(4, 2283, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2283, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2306, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2307, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2308, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2309, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2310, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2311, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2312, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2313, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLRISEFALL3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2317, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES, " CDLSEPARATINGLINES(open, high, low, close)\n\n Separating Lines (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES}; -static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSEPARATINGLINES (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 1); __PYX_ERR(4, 2319, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 2); __PYX_ERR(4, 2319, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 3); __PYX_ERR(4, 2319, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSEPARATINGLINES") < 0)) __PYX_ERR(4, 2319, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2319, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2342, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2343, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2344, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2345, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2346, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2347, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2348, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2349, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSEPARATINGLINES((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2352, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2353, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR, " CDLSHOOTINGSTAR(open, high, low, close)\n\n Shooting Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSHOOTINGSTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 1); __PYX_ERR(4, 2355, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 2); __PYX_ERR(4, 2355, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 3); __PYX_ERR(4, 2355, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSHOOTINGSTAR") < 0)) __PYX_ERR(4, 2355, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2355, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2378, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2379, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2380, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2382, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2383, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2384, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2385, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSHOOTINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2388, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE, " CDLSHORTLINE(open, high, low, close)\n\n Short Line Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSHORTLINE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 1); __PYX_ERR(4, 2391, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 2); __PYX_ERR(4, 2391, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 3); __PYX_ERR(4, 2391, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSHORTLINE") < 0)) __PYX_ERR(4, 2391, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2391, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2414, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2415, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2416, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2417, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2418, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2419, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2420, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2421, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSHORTLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2425, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP, " CDLSPINNINGTOP(open, high, low, close)\n\n Spinning Top (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSPINNINGTOP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 1); __PYX_ERR(4, 2427, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 2); __PYX_ERR(4, 2427, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 3); __PYX_ERR(4, 2427, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSPINNINGTOP") < 0)) __PYX_ERR(4, 2427, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2427, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2450, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2451, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2452, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2453, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2454, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2455, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2456, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2457, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSPINNINGTOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN, " CDLSTALLEDPATTERN(open, high, low, close)\n\n Stalled Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSTALLEDPATTERN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 1); __PYX_ERR(4, 2463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 2); __PYX_ERR(4, 2463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 3); __PYX_ERR(4, 2463, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSTALLEDPATTERN") < 0)) __PYX_ERR(4, 2463, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2463, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2486, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2487, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2488, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2489, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2490, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2491, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2492, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2493, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSTALLEDPATTERN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2496, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH, " CDLSTICKSANDWICH(open, high, low, close)\n\n Stick Sandwich (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLSTICKSANDWICH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 1); __PYX_ERR(4, 2499, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 2); __PYX_ERR(4, 2499, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 3); __PYX_ERR(4, 2499, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSTICKSANDWICH") < 0)) __PYX_ERR(4, 2499, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2499, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2522, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2523, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2524, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2525, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2526, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2527, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2528, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2529, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLSTICKSANDWICH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2533, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI, " CDLTAKURI(open, high, low, close)\n\n Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLTAKURI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 1); __PYX_ERR(4, 2535, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 2); __PYX_ERR(4, 2535, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 3); __PYX_ERR(4, 2535, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTAKURI") < 0)) __PYX_ERR(4, 2535, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2535, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2558, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2559, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2560, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2561, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2562, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2563, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2564, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2565, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLTAKURI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2569, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP, " CDLTASUKIGAP(open, high, low, close)\n\n Tasuki Gap (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLTASUKIGAP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 1); __PYX_ERR(4, 2571, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 2); __PYX_ERR(4, 2571, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 3); __PYX_ERR(4, 2571, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTASUKIGAP") < 0)) __PYX_ERR(4, 2571, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2571, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2594, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2595, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2596, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2597, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2598, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2599, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2600, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2601, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLTASUKIGAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2605, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING, " CDLTHRUSTING(open, high, low, close)\n\n Thrusting Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING}; -static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLTHRUSTING (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 1); __PYX_ERR(4, 2607, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 2); __PYX_ERR(4, 2607, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 3); __PYX_ERR(4, 2607, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTHRUSTING") < 0)) __PYX_ERR(4, 2607, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2607, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2630, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2631, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2632, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2634, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2635, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2636, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2637, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLTHRUSTING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR, " CDLTRISTAR(open, high, low, close)\n\n Tristar Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLTRISTAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 1); __PYX_ERR(4, 2643, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 2); __PYX_ERR(4, 2643, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 3); __PYX_ERR(4, 2643, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTRISTAR") < 0)) __PYX_ERR(4, 2643, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2643, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2666, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2667, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2668, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2669, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2670, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2671, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2672, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2673, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLTRISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2676, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2677, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER, " CDLUNIQUE3RIVER(open, high, low, close)\n\n Unique 3 River (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER}; -static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLUNIQUE3RIVER (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 1); __PYX_ERR(4, 2679, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 2); __PYX_ERR(4, 2679, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 3); __PYX_ERR(4, 2679, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLUNIQUE3RIVER") < 0)) __PYX_ERR(4, 2679, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2679, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2702, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2703, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2704, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2705, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2706, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2707, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2708, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2709, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLUNIQUE3RIVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2713, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS, " CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n Upside Gap Two Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 1); __PYX_ERR(4, 2715, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 2); __PYX_ERR(4, 2715, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 3); __PYX_ERR(4, 2715, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLUPSIDEGAP2CROWS") < 0)) __PYX_ERR(4, 2715, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2715, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2738, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2739, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2740, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2741, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2742, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2743, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2744, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2745, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2748, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2749, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS, " CDLXSIDEGAP3METHODS(open, high, low, close)\n\n Upside/Downside Gap Three Methods (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CDLXSIDEGAP3METHODS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 1); __PYX_ERR(4, 2751, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 2); __PYX_ERR(4, 2751, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 3); __PYX_ERR(4, 2751, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLXSIDEGAP3METHODS") < 0)) __PYX_ERR(4, 2751, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 4)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - } - __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("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2751, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_open_data; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2774, __pyx_L1_error) - __pyx_v_open_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2775, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2776, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2777, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2778, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 2779, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2780, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2781, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2785, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CEIL, " CEIL(real)\n\n Vector Ceil (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CEIL = {"stream_CEIL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CEIL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CEIL (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2787, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CEIL") < 0)) __PYX_ERR(4, 2787, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2787, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2789, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CEIL(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2806, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2807, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2808, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_CEIL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2812, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_517stream_CMO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CMO, " CMO(real[, timeperiod=?])\n\n Chande Momentum Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CMO = {"stream_CMO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CMO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CMO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_CMO (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2814, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2814, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CMO") < 0)) __PYX_ERR(4, 2814, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2816, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2814, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2816, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_CMO", 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(4, 2835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2836, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2837, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_CMO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_519stream_CORREL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CORREL, " CORREL(real0, real1[, timeperiod=?])\n\n Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CORREL = {"stream_CORREL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CORREL}; -static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CORREL(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_CORREL (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, 1); __PYX_ERR(4, 2843, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CORREL") < 0)) __PYX_ERR(4, 2843, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2845, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2843, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2845, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2845, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2866, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2867, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2868, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2869, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2870, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_CORREL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_COS, " COS(real)\n\n Vector Trigonometric Cos (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_COS = {"stream_COS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_COS}; -static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_COS (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2876, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_COS") < 0)) __PYX_ERR(4, 2876, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2876, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2878, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_COS(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2896, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2897, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_COS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_523stream_COSH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_COSH, " COSH(real)\n\n Vector Trigonometric Cosh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_COSH = {"stream_COSH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_COSH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_COSH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_COSH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2903, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_COSH") < 0)) __PYX_ERR(4, 2903, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2903, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2905, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_COSH(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_COSH", 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(4, 2922, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2923, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2924, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_COSH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2927, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2928, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_525stream_DEMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_DEMA, " DEMA(real[, timeperiod=?])\n\n Double Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_DEMA = {"stream_DEMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_DEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_DEMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_DEMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DEMA") < 0)) __PYX_ERR(4, 2930, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2932, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2930, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2932, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2951, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2952, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2953, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_DEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2956, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2957, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_527stream_DIV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_DIV, " DIV(real0, real1)\n\n Vector Arithmetic Div (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_DIV = {"stream_DIV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_DIV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_DIV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_DIV (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2959, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2959, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, 1); __PYX_ERR(4, 2959, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DIV") < 0)) __PYX_ERR(4, 2959, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2959, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2961, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2961, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 2980, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2981, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2982, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 2983, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 2984, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_DIV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2987, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2988, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_DX, " DX(high, low, close[, timeperiod=?])\n\n Directional Movement Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_DX = {"stream_DX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_DX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_DX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 1); __PYX_ERR(4, 2990, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 2); __PYX_ERR(4, 2990, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DX") < 0)) __PYX_ERR(4, 2990, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2992, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 2990, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_DX(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3013, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3014, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 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_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3016, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 3017, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3018, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 3019, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_DX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3022, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_EMA, " EMA(real[, timeperiod=?])\n\n Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_EMA = {"stream_EMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_EMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_EMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3025, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3025, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_EMA") < 0)) __PYX_ERR(4, 3025, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3027, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3025, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3027, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3046, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3047, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3048, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_EMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3051, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_533stream_EXP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_EXP, " EXP(real)\n\n Vector Arithmetic Exp (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_EXP = {"stream_EXP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_EXP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_EXP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_EXP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3054, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_EXP") < 0)) __PYX_ERR(4, 3054, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3054, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3056, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_EXP(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3073, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3074, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3075, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_EXP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3078, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3079, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_535stream_FLOOR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_FLOOR, " FLOOR(real)\n\n Vector Floor (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_FLOOR = {"stream_FLOOR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_FLOOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_FLOOR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_FLOOR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3081, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_FLOOR") < 0)) __PYX_ERR(4, 3081, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3081, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3083, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_FLOOR(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3100, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3101, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3102, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_FLOOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3105, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3106, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_537stream_HT_DCPERIOD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD, " HT_DCPERIOD(real)\n\n Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_DCPERIOD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3108, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_DCPERIOD") < 0)) __PYX_ERR(4, 3108, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3108, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3110, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3128, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3129, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_DCPERIOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3133, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_539stream_HT_DCPHASE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE, " HT_DCPHASE(real)\n\n Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_DCPHASE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3135, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_DCPHASE") < 0)) __PYX_ERR(4, 3135, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3135, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3137, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3155, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3156, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_DCPHASE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3159, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_541stream_HT_PHASOR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR, " HT_PHASOR(real)\n\n Hilbert Transform - Phasor Components (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n inphase\n quadrature\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_PHASOR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3162, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_PHASOR") < 0)) __PYX_ERR(4, 3162, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3162, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3164, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outinphase; - double __pyx_v_outquadrature; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_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(4, 3183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3184, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3185, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_PHASOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3190, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3190, __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)) __PYX_ERR(4, 3190, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 3190, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_543stream_HT_SINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_HT_SINE, " HT_SINE(real)\n\n Hilbert Transform - SineWave (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n sine\n leadsine\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_HT_SINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_SINE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3192, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_SINE") < 0)) __PYX_ERR(4, 3192, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3192, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3194, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outsine; - double __pyx_v_outleadsine; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_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(4, 3213, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3214, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3215, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_SINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3220, __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)) __PYX_ERR(4, 3220, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 3220, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_545stream_HT_TRENDLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE, " HT_TRENDLINE(real)\n\n Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_TRENDLINE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3222, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_TRENDLINE") < 0)) __PYX_ERR(4, 3222, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3222, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3224, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3242, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3243, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_HT_TRENDLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_547stream_HT_TRENDMODE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE, " HT_TRENDMODE(real)\n\n Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_HT_TRENDMODE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3249, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_TRENDMODE") < 0)) __PYX_ERR(4, 3249, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3249, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3251, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3268, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3269, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3270, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_HT_TRENDMODE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3273, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_549stream_KAMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_KAMA, " KAMA(real[, timeperiod=?])\n\n Kaufman Adaptive Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_KAMA = {"stream_KAMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_KAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_KAMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_KAMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3276, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3276, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_KAMA") < 0)) __PYX_ERR(4, 3276, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3278, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3276, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3278, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_KAMA", 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(4, 3297, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3298, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3299, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_KAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_551stream_LINEARREG(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_LINEARREG, " LINEARREG(real[, timeperiod=?])\n\n Linear Regression (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_LINEARREG}; -static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_LINEARREG (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3305, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3305, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG") < 0)) __PYX_ERR(4, 3305, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3307, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3305, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3307, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LINEARREG", 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(4, 3326, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3327, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3328, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3331, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE, " LINEARREG_ANGLE(real[, timeperiod=?])\n\n Linear Regression Angle (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_LINEARREG_ANGLE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3334, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3334, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_ANGLE") < 0)) __PYX_ERR(4, 3334, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3336, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3334, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3336, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3356, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3357, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_ANGLE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3360, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT, " LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n Linear Regression Intercept (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_LINEARREG_INTERCEPT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3363, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3363, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_INTERCEPT") < 0)) __PYX_ERR(4, 3363, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3365, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3363, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3365, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3384, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3385, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3386, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_INTERCEPT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3389, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE, " LINEARREG_SLOPE(real[, timeperiod=?])\n\n Linear Regression Slope (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_LINEARREG_SLOPE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3392, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3392, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_SLOPE") < 0)) __PYX_ERR(4, 3392, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3394, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3392, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3394, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3414, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3415, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LINEARREG_SLOPE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3419, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_559stream_LN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_LN, " LN(real)\n\n Vector Log Natural (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_LN = {"stream_LN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_LN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_LN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_LN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3421, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LN") < 0)) __PYX_ERR(4, 3421, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3421, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3423, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_LN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3441, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3442, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3445, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3446, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_561stream_LOG10(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_LOG10, " LOG10(real)\n\n Vector Log10 (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_LOG10 = {"stream_LOG10", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_LOG10}; -static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_LOG10(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_LOG10 (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3448, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LOG10") < 0)) __PYX_ERR(4, 3448, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3448, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3450, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_LOG10(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_LOG10", 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(4, 3467, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3468, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3469, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_LOG10((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_563stream_MA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_MA, " MA(real[, timeperiod=?, matype=?])\n\n Moving average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_MA = {"stream_MA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_MA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_MA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - int __pyx_v_matype; - #if !CYTHON_METH_FASTCALL - 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("stream_MA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MA") < 0)) __PYX_ERR(4, 3475, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3477, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_matype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3477, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3475, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3477, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MA", 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(4, 3497, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3498, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3499, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_565stream_MACD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_MACD, " MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n Moving Average Convergence/Divergence (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\n Outputs:\n macd\n macdsignal\n macdhist\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_MACD = {"stream_MACD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_MACD}; -static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_MACD(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_signalperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MACD (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_signalperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACD") < 0)) __PYX_ERR(4, 3505, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 3505, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3507, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_MACD(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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; - __Pyx_RefNannySetupContext("stream_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(4, 3532, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3533, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3534, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3539, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3540, __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)) __PYX_ERR(4, 3540, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4)) __PYX_ERR(4, 3540, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5)) __PYX_ERR(4, 3540, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __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.stream_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_567stream_MACDEXT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_MACDEXT, " MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n MACD with controllable MA type (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n fastmatype: 0\n slowperiod: 26\n slowmatype: 0\n signalperiod: 9\n signalmatype: 0\n Outputs:\n macd\n macdsignal\n macdhist\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_MACDEXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_fastperiod; - int __pyx_v_fastmatype; - int __pyx_v_slowperiod; - int __pyx_v_slowmatype; - int __pyx_v_signalperiod; - int __pyx_v_signalmatype; - #if !CYTHON_METH_FASTCALL - CYTHON_UNUSED Py_ssize_t __pyx_nargs; - #endif - CYTHON_UNUSED PyObject *const *__pyx_kwvalues; - 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("stream_MACDEXT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_fastmatype,&__pyx_n_s_slowperiod,&__pyx_n_s_slowmatype,&__pyx_n_s_signalperiod,&__pyx_n_s_signalmatype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastmatype); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowmatype); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalmatype); - if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACDEXT") < 0)) __PYX_ERR(4, 3542, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastmatype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_fastmatype = ((int)((int)0)); - } - if (values[3]) { - __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowmatype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_slowmatype = ((int)((int)0)); - } - if (values[5]) { - __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - if (values[6]) { - __pyx_v_signalmatype = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) - } else { - __pyx_v_signalmatype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 3542, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3544, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(__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; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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; - __Pyx_RefNannySetupContext("stream_MACDEXT", 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(4, 3572, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3573, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3574, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACDEXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3579, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3580, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3580, __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)) __PYX_ERR(4, 3580, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4)) __PYX_ERR(4, 3580, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5)) __PYX_ERR(4, 3580, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __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.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_569stream_MACDFIX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_MACDFIX, " MACDFIX(real[, signalperiod=?])\n\n Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n signalperiod: 9\n Outputs:\n macd\n macdsignal\n macdhist\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_MACDFIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MACDFIX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_signalperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3582, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3582, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACDFIX") < 0)) __PYX_ERR(4, 3582, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3584, __pyx_L3_error) - } else { - __pyx_v_signalperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3582, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3584, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmacd; - double __pyx_v_outmacdsignal; - double __pyx_v_outmacdhist; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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; - __Pyx_RefNannySetupContext("stream_MACDFIX", 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(4, 3607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3608, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3609, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MACDFIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3615, __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)) __PYX_ERR(4, 3615, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_4)) __PYX_ERR(4, 3615, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_5); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_5)) __PYX_ERR(4, 3615, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_t_5 = 0; - __pyx_r = __pyx_t_6; - __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.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_571stream_MAMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_MAMA, " MAMA(real[, fastlimit=?, slowlimit=?])\n\n MESA Adaptive Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastlimit: 0.5\n slowlimit: 0.05\n Outputs:\n mama\n fama\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_MAMA = {"stream_MAMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_MAMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_MAMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MAMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastlimit,&__pyx_n_s_slowlimit,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastlimit); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowlimit); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAMA") < 0)) __PYX_ERR(4, 3617, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 3619, __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(4, 3619, __pyx_L3_error) - } else { - __pyx_v_slowlimit = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3617, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3619, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmama; - double __pyx_v_outfama; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_MAMA", 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(4, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3642, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3643, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmama), (&__pyx_v_outfama)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3648, __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)) __PYX_ERR(4, 3648, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 3648, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_573stream_MAVP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_MAVP, " MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n Moving average with variable period (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n periods: (any ndarray)\n Parameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_MAVP = {"stream_MAVP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_MAVP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_MAVP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MAVP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_periods,&__pyx_n_s_minperiod,&__pyx_n_s_maxperiod,&__pyx_n_s_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_periods)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, 1); __PYX_ERR(4, 3650, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_minperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maxperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAVP") < 0)) __PYX_ERR(4, 3650, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) - } else { - __pyx_v_minperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_maxperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) - } else { - __pyx_v_maxperiod = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 3650, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3652, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(4, 3652, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_MAVP(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - double *__pyx_v_periods_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3676, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3677, __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_f_5numpy_7ndarray_4data_data(__pyx_v_periods); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3678, __pyx_L1_error) - __pyx_v_periods_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_periods); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 3679, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAVP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_periods_data, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3683, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_periods); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_MAX, " MAX(real[, timeperiod=?])\n\n Highest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_MAX = {"stream_MAX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_MAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MAX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3685, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3685, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAX") < 0)) __PYX_ERR(4, 3685, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3687, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3685, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3687, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAX", 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(4, 3706, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3707, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3708, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3711, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_577stream_MAXINDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX, " MAXINDEX(real[, timeperiod=?])\n\n Index of highest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MAXINDEX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAXINDEX") < 0)) __PYX_ERR(4, 3714, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3716, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3714, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3716, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MAXINDEX", 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(4, 3735, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3736, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3737, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_MAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3740, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_579stream_MEDPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE, " MEDPRICE(high, low)\n\n Median Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MEDPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3743, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3743, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, 1); __PYX_ERR(4, 3743, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MEDPRICE") < 0)) __PYX_ERR(4, 3743, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_high = ((PyArrayObject *)values[0]); - __pyx_v_low = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3743, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3745, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3745, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3763, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3764, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3765, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3766, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 3767, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MEDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3771, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_MFI, " MFI(high, low, close, volume[, timeperiod=?])\n\n Money Flow Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_MFI = {"stream_MFI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_MFI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_METH_FASTCALL - 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("stream_MFI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 1); __PYX_ERR(4, 3773, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 2); __PYX_ERR(4, 3773, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 3); __PYX_ERR(4, 3773, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MFI") < 0)) __PYX_ERR(4, 3773, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3775, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 3773, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3797, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3798, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3799, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3800, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 3801, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3802, __pyx_L1_error) - __pyx_v_close_data = ((double *)__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(4, 3803, __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_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3804, __pyx_L1_error) - __pyx_v_volume_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 3805, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3808, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT, " MIDPOINT(real[, timeperiod=?])\n\n MidPoint over period (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MIDPOINT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3811, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3811, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIDPOINT") < 0)) __PYX_ERR(4, 3811, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3813, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3811, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3813, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MIDPOINT", 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(4, 3832, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3833, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3834, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIDPOINT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3837, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3838, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_585stream_MIDPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE, " MIDPRICE(high, low[, timeperiod=?])\n\n Midpoint Price over period (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MIDPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, 1); __PYX_ERR(4, 3840, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIDPRICE") < 0)) __PYX_ERR(4, 3840, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3842, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3840, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3842, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3842, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3862, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3863, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3864, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3865, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 3866, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3870, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_MIN, " MIN(real[, timeperiod=?])\n\n Lowest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_MIN = {"stream_MIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_MIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MIN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3872, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3872, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIN") < 0)) __PYX_ERR(4, 3872, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3874, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3872, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3874, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3893, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3894, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3895, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3898, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3899, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_589stream_MININDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_MININDEX, " MININDEX(real[, timeperiod=?])\n\n Index of lowest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n integer (values are -100, 0 or 100)\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_MININDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MININDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MININDEX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3901, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3901, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MININDEX") < 0)) __PYX_ERR(4, 3901, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3903, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3901, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3903, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outinteger; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 3922, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3923, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3924, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outinteger = 0; - - __pyx_v_retCode = TA_MININDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3927, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3928, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_591stream_MINMAX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_MINMAX, " MINMAX(real[, timeperiod=?])\n\n Lowest and highest values over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n min\n max\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_MINMAX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MINMAX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MINMAX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3930, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3930, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINMAX") < 0)) __PYX_ERR(4, 3930, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3932, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3930, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3932, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outmin; - double __pyx_v_outmax; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_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(4, 3953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3954, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3955, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINMAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmin), (&__pyx_v_outmax)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3960, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3960, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3960, __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)) __PYX_ERR(4, 3960, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 3960, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_593stream_MINMAXINDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX, " MINMAXINDEX(real[, timeperiod=?])\n\n Indexes of lowest and highest values over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n minidx\n maxidx\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MINMAXINDEX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINMAXINDEX") < 0)) __PYX_ERR(4, 3962, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3964, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3962, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3964, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - int __pyx_v_outminidx; - int __pyx_v_outmaxidx; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_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(4, 3985, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3986, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 3987, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outminidx = 0; - - __pyx_v_outmaxidx = 0; - - __pyx_v_retCode = TA_MINMAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 3992, __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)) __PYX_ERR(4, 3992, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 3992, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_595stream_MINUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI, " MINUS_DI(high, low, close[, timeperiod=?])\n\n Minus Directional Indicator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MINUS_DI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 1); __PYX_ERR(4, 3994, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 2); __PYX_ERR(4, 3994, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINUS_DI") < 0)) __PYX_ERR(4, 3994, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3996, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3994, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_MINUS_DI(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4017, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4018, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4019, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4020, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4021, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4022, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4023, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4027, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM, " MINUS_DM(high, low[, timeperiod=?])\n\n Minus Directional Movement (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MINUS_DM (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, 1); __PYX_ERR(4, 4029, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINUS_DM") < 0)) __PYX_ERR(4, 4029, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4031, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4029, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4031, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4031, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4051, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4052, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4053, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4054, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4055, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MINUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4058, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4059, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_MOM, " MOM(real[, timeperiod=?])\n\n Momentum (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_MOM = {"stream_MOM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_MOM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_MOM (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4061, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4061, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MOM") < 0)) __PYX_ERR(4, 4061, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4063, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4061, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4063, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_MOM", 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(4, 4082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4083, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4084, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4088, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_601stream_MULT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_MULT, " MULT(real0, real1)\n\n Vector Arithmetic Mult (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_MULT = {"stream_MULT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_MULT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MULT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_MULT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4090, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4090, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, 1); __PYX_ERR(4, 4090, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MULT") < 0)) __PYX_ERR(4, 4090, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4090, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4092, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4092, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4111, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4112, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4113, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4114, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4115, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_MULT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_NATR, " NATR(high, low, close[, timeperiod=?])\n\n Normalized Average True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_NATR = {"stream_NATR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_NATR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_NATR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 1); __PYX_ERR(4, 4121, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 2); __PYX_ERR(4, 4121, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_NATR") < 0)) __PYX_ERR(4, 4121, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4123, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4121, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_NATR(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4144, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4145, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4146, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4147, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4148, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4149, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4150, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_NATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4153, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4154, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_OBV, " OBV(real, volume)\n\n On Balance Volume (Volume Indicators)\n\n Inputs:\n real: (any ndarray)\n prices: ['volume']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_OBV = {"stream_OBV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_OBV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_OBV (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_volume,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4156, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4156, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, 1); __PYX_ERR(4, 4156, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_OBV") < 0)) __PYX_ERR(4, 4156, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - __pyx_v_volume = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4156, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4158, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4158, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - double *__pyx_v_volume_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4178, __pyx_L1_error) - __pyx_v_real_data = ((double *)__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(4, 4179, __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_5numpy_7ndarray_4data_data(__pyx_v_volume); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4180, __pyx_L1_error) - __pyx_v_volume_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real, __pyx_v_volume); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4181, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_OBV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4184, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XDECREF((PyObject *)__pyx_v_volume); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI, " PLUS_DI(high, low, close[, timeperiod=?])\n\n Plus Directional Indicator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_PLUS_DI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 1); __PYX_ERR(4, 4187, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 2); __PYX_ERR(4, 4187, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PLUS_DI") < 0)) __PYX_ERR(4, 4187, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4189, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4187, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_PLUS_DI(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4210, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4211, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4212, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4213, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4214, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4215, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4216, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PLUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4219, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM, " PLUS_DM(high, low[, timeperiod=?])\n\n Plus Directional Movement (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_PLUS_DM (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, 1); __PYX_ERR(4, 4222, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PLUS_DM") < 0)) __PYX_ERR(4, 4222, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4224, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4222, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4224, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4224, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4244, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4245, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4246, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4247, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4248, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PLUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4251, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4252, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_PPO, " PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n Percentage Price Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_PPO = {"stream_PPO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_PPO}; -static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_fastperiod; - int __pyx_v_slowperiod; - int __pyx_v_matype; - #if !CYTHON_METH_FASTCALL - 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("stream_PPO (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PPO") < 0)) __PYX_ERR(4, 4254, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) - } else { - __pyx_v_fastperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) - } else { - __pyx_v_slowperiod = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) - } else { - __pyx_v_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4254, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4256, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_PPO(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_PPO", 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(4, 4277, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4278, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4279, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_PPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4282, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_613stream_ROC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_ROC, " ROC(real[, timeperiod=?])\n\n Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_ROC = {"stream_ROC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_ROC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_ROC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_ROC (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4285, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4285, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROC") < 0)) __PYX_ERR(4, 4285, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4287, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4285, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4287, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4306, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4307, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4308, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4311, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4312, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_615stream_ROCP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_ROCP, " ROCP(real[, timeperiod=?])\n\n Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_ROCP = {"stream_ROCP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_ROCP}; -static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_ROCP(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_ROCP (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4314, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4314, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCP") < 0)) __PYX_ERR(4, 4314, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4316, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4314, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4316, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4336, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4337, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4340, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_617stream_ROCR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_ROCR, " ROCR(real[, timeperiod=?])\n\n Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_ROCR = {"stream_ROCR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_ROCR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_ROCR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_ROCR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4343, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4343, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCR") < 0)) __PYX_ERR(4, 4343, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4345, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4343, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4345, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_ROCR", 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(4, 4364, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4365, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4366, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4369, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_619stream_ROCR100(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_ROCR100, " ROCR100(real[, timeperiod=?])\n\n Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_ROCR100}; -static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_ROCR100(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_ROCR100 (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4372, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4372, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCR100") < 0)) __PYX_ERR(4, 4372, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4374, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4372, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4374, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4393, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4394, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4395, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ROCR100((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4398, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_621stream_RSI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_RSI, " RSI(real[, timeperiod=?])\n\n Relative Strength Index (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_RSI = {"stream_RSI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_RSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_RSI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_RSI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4401, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4401, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_RSI") < 0)) __PYX_ERR(4, 4401, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4403, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4401, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4403, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4423, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4424, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_RSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4428, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_623stream_SAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_SAR, " SAR(high, low[, acceleration=?, maximum=?])\n\n Parabolic SAR (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n acceleration: 0.02\n maximum: 0.2\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_SAR = {"stream_SAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_SAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_SAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_SAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_acceleration,&__pyx_n_s_maximum,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, 1); __PYX_ERR(4, 4430, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_acceleration); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maximum); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SAR") < 0)) __PYX_ERR(4, 4430, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 4432, __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(4, 4432, __pyx_L3_error) - } else { - __pyx_v_maximum = ((double)((double)0.2)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4430, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4432, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4432, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4453, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4454, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4455, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4456, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4457, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4460, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_SAREXT, " SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n Parabolic SAR - Extended (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\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\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_SAREXT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_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_METH_FASTCALL - 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}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_startvalue,&__pyx_n_s_offsetonreverse,&__pyx_n_s_accelerationinitlong,&__pyx_n_s_accelerationlong,&__pyx_n_s_accelerationmaxlong,&__pyx_n_s_accelerationinitshort,&__pyx_n_s_accelerationshort,&__pyx_n_s_accelerationmaxshort,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 10: values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9); - CYTHON_FALLTHROUGH; - case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8); - CYTHON_FALLTHROUGH; - case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, 1); __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_startvalue); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offsetonreverse); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationinitlong); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationlong); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationmaxlong); - if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationinitshort); - if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 8: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationshort); - if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 9: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationmaxshort); - if (value) { values[9] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SAREXT") < 0)) __PYX_ERR(4, 4463, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 10: values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9); - CYTHON_FALLTHROUGH; - case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8); - CYTHON_FALLTHROUGH; - case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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(4, 4465, __pyx_L3_error) - } else { - __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __pyx_L3_error) - } else { - __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 4463, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4465, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4465, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_SAREXT(__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; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_SAREXT(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4492, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4493, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4494, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4495, __pyx_L1_error) - __pyx_v_low_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_high, __pyx_v_low); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4496, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SAREXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __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), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4500, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_high); - __Pyx_XDECREF((PyObject *)__pyx_v_low); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_SIN, " SIN(real)\n\n Vector Trigonometric Sin (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_SIN = {"stream_SIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_SIN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_SIN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4502, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SIN") < 0)) __PYX_ERR(4, 4502, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4502, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4504, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_SIN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SIN", 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(4, 4521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4522, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4523, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4527, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_629stream_SINH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_SINH, " SINH(real)\n\n Vector Trigonometric Sinh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_SINH = {"stream_SINH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_SINH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_SINH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_SINH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4529, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SINH") < 0)) __PYX_ERR(4, 4529, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4529, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4531, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_SINH(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SINH", 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(4, 4548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4549, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4550, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SINH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4553, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4554, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_631stream_SMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_SMA, " SMA(real[, timeperiod=?])\n\n Simple Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_SMA = {"stream_SMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_SMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_SMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_SMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4556, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4556, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SMA") < 0)) __PYX_ERR(4, 4556, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4558, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4556, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4558, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SMA", 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(4, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4578, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4579, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4583, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_633stream_SQRT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_SQRT, " SQRT(real)\n\n Vector Square Root (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_SQRT = {"stream_SQRT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_SQRT}; -static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_SQRT(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_SQRT (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4585, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SQRT") < 0)) __PYX_ERR(4, 4585, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4585, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4587, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_SQRT(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SQRT", 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(4, 4604, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4605, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4606, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SQRT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_635stream_STDDEV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_STDDEV, " STDDEV(real[, timeperiod=?, nbdev=?])\n\n Standard Deviation (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdev: 1.0\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_STDDEV}; -static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_STDDEV(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_STDDEV (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdev); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STDDEV") < 0)) __PYX_ERR(4, 4612, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4614, __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(4, 4614, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4612, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4614, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4634, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4635, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4636, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STDDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4639, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4640, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_637stream_STOCH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_STOCH, " STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n Stochastic (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0\n slowd_period: 3\n slowd_matype: 0\n Outputs:\n slowk\n slowd\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_STOCH = {"stream_STOCH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_STOCH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_STOCH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_slowk_period; - int __pyx_v_slowk_matype; - int __pyx_v_slowd_period; - int __pyx_v_slowd_matype; - #if !CYTHON_METH_FASTCALL - 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}; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - PyObject *__pyx_r = 0; - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_slowk_period,&__pyx_n_s_slowk_matype,&__pyx_n_s_slowd_period,&__pyx_n_s_slowd_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 1); __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 2); __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowk_period); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowk_matype); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 6: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowd_period); - if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 7: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowd_matype); - if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCH") < 0)) __PYX_ERR(4, 4642, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); - CYTHON_FALLTHROUGH; - case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); - CYTHON_FALLTHROUGH; - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_slowk_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) - } else { - __pyx_v_slowk_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_slowk_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) - } else { - __pyx_v_slowk_matype = ((int)((int)0)); - } - if (values[6]) { - __pyx_v_slowd_period = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) - } else { - __pyx_v_slowd_period = ((int)((int)-2147483648)); - } - if (values[7]) { - __pyx_v_slowd_matype = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) - } else { - __pyx_v_slowd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 4642, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_STOCH(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_STOCH(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outslowk; - double __pyx_v_outslowd; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __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("stream_STOCH", 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(4, 4671, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4672, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4673, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4674, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4675, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4676, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4677, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __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), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4681, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4682, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4682, __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)) __PYX_ERR(4, 4682, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 4682, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_STOCHF, " STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n Stochastic Fast (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\n Outputs:\n fastk\n fastd\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_STOCHF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_STOCHF (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 1); __PYX_ERR(4, 4684, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 2); __PYX_ERR(4, 4684, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_period); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_matype); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCHF") < 0)) __PYX_ERR(4, 4684, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 4684, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_STOCHF(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_STOCHF(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outfastk; - double __pyx_v_outfastd; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __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("stream_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(4, 4711, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4712, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4713, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4714, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4715, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4716, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4717, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4722, __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)) __PYX_ERR(4, 4722, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 4722, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI, " STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n Stochastic Relative Strength Index (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\n Outputs:\n fastk\n fastd\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI}; -static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - int __pyx_v_fastk_period; - int __pyx_v_fastd_period; - int __pyx_v_fastd_matype; - #if !CYTHON_METH_FASTCALL - 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("stream_STOCHRSI (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_period); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_matype); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCHRSI") < 0)) __PYX_ERR(4, 4724, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - if (values[2]) { - __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) - } else { - __pyx_v_fastk_period = ((int)((int)-2147483648)); - } - if (values[3]) { - __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) - } else { - __pyx_v_fastd_period = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) - } else { - __pyx_v_fastd_matype = ((int)((int)0)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 4724, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4726, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outfastk; - double __pyx_v_outfastd; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__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("stream_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(4, 4750, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4751, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4752, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_STOCHRSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4756, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_t_4 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(4, 4757, __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)) __PYX_ERR(4, 4757, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_4)) __PYX_ERR(4, 4757, __pyx_L1_error); - __pyx_t_1 = 0; - __pyx_t_4 = 0; - __pyx_r = __pyx_t_5; - __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.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_643stream_SUB(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_SUB, " SUB(real0, real1)\n\n Vector Arithmetic Subtraction (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_SUB = {"stream_SUB", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_SUB}; -static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SUB(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_SUB (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, 1); __PYX_ERR(4, 4759, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SUB") < 0)) __PYX_ERR(4, 4759, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 2)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - } - __pyx_v_real0 = ((PyArrayObject *)values[0]); - __pyx_v_real1 = ((PyArrayObject *)values[1]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4759, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4761, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4761, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real0_data; - double *__pyx_v_real1_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUB", 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(4, 4780, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4781, __pyx_L1_error) - __pyx_v_real0_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4782, __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_f_5numpy_7ndarray_4data_data(__pyx_v_real1); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4783, __pyx_L1_error) - __pyx_v_real1_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length2(__pyx_v_real0, __pyx_v_real1); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4784, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SUB((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4788, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real0); - __Pyx_XDECREF((PyObject *)__pyx_v_real1); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_SUM, " SUM(real[, timeperiod=?])\n\n Summation (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_SUM = {"stream_SUM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_SUM}; -static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_SUM (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4790, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4790, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SUM") < 0)) __PYX_ERR(4, 4790, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4792, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4790, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_SUM", 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(4, 4811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4812, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4813, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_SUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4817, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_647stream_T3(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_T3, " T3(real[, timeperiod=?, vfactor=?])\n\n Triple Exponential Moving Average (T3) (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n vfactor: 0.7\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_T3 = {"stream_T3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_T3}; -static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_T3(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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_vfactor; - #if !CYTHON_METH_FASTCALL - 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("stream_T3 (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_vfactor,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfactor); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_T3") < 0)) __PYX_ERR(4, 4819, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4821, __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(4, 4821, __pyx_L3_error) - } else { - __pyx_v_vfactor = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4819, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4821, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_T3", 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(4, 4841, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4842, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4843, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_T3((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4846, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4847, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_649stream_TAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_TAN, " TAN(real)\n\n Vector Trigonometric Tan (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_TAN = {"stream_TAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_TAN}; -static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_TAN(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_TAN (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4849, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TAN") < 0)) __PYX_ERR(4, 4849, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4849, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4851, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_TAN(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TAN", 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(4, 4868, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4869, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4870, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4873, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_651stream_TANH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_TANH, " TANH(real)\n\n Vector Trigonometric Tanh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_TANH = {"stream_TANH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_TANH}; -static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_TANH(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_TANH (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4876, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TANH") < 0)) __PYX_ERR(4, 4876, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 1)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - } - __pyx_v_real = ((PyArrayObject *)values[0]); - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4876, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4878, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_TANH(__pyx_self, __pyx_v_real); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TANH", 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(4, 4895, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4896, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4897, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TANH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4900, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_653stream_TEMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_TEMA, " TEMA(real[, timeperiod=?])\n\n Triple Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_TEMA = {"stream_TEMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_TEMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_TEMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_TEMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4903, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4903, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TEMA") < 0)) __PYX_ERR(4, 4903, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4903, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4905, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TEMA", 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(4, 4924, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4925, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4926, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4929, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_655stream_TRANGE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_TRANGE, " TRANGE(high, low, close)\n\n True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_TRANGE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_TRANGE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_TRANGE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 1); __PYX_ERR(4, 4932, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 2); __PYX_ERR(4, 4932, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRANGE") < 0)) __PYX_ERR(4, 4932, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __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("stream_TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4932, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 4953, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4954, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4955, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4956, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 4957, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4958, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 4959, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRANGE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4963, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_TRIMA, " TRIMA(real[, timeperiod=?])\n\n Triangular Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_TRIMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_TRIMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRIMA") < 0)) __PYX_ERR(4, 4965, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4967, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4965, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4967, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIMA", 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(4, 4986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4987, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 4988, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRIMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4991, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_659stream_TRIX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_TRIX, " TRIX(real[, timeperiod=?])\n\n 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_TRIX = {"stream_TRIX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_TRIX}; -static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_TRIX(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_TRIX (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4994, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4994, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRIX") < 0)) __PYX_ERR(4, 4994, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4996, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4994, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4996, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TRIX", 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(4, 5015, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5016, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5017, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TRIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5020, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5021, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_661stream_TSF(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_TSF, " TSF(real[, timeperiod=?])\n\n Time Series Forecast (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_TSF = {"stream_TSF", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_TSF}; -static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TSF(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_TSF (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5023, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5023, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TSF") < 0)) __PYX_ERR(4, 5023, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5025, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5023, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5025, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TSF", 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(4, 5044, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5045, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5046, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TSF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5049, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_663stream_TYPPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE, " TYPPRICE(high, low, close)\n\n Typical Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_TYPPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 1); __PYX_ERR(4, 5052, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 2); __PYX_ERR(4, 5052, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TYPPRICE") < 0)) __PYX_ERR(4, 5052, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __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("stream_TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5052, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_TYPPRICE", 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(4, 5073, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5074, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5075, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5076, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 5077, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5078, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 5079, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_TYPPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_ULTOSC, " ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n Ultimate Oscillator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_ULTOSC}; -static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_ULTOSC (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod1,&__pyx_n_s_timeperiod2,&__pyx_n_s_timeperiod3,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 1); __PYX_ERR(4, 5085, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 2); __PYX_ERR(4, 5085, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod1); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 4: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod2); - if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 5: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod3); - if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ULTOSC") < 0)) __PYX_ERR(4, 5085, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); - CYTHON_FALLTHROUGH; - case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); - CYTHON_FALLTHROUGH; - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) - } else { - __pyx_v_timeperiod1 = ((int)((int)-2147483648)); - } - if (values[4]) { - __pyx_v_timeperiod2 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) - } else { - __pyx_v_timeperiod2 = ((int)((int)-2147483648)); - } - if (values[5]) { - __pyx_v_timeperiod3 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) - } else { - __pyx_v_timeperiod3 = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5085, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 5110, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5111, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5112, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5113, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 5114, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5115, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 5116, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_ULTOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_VAR, " VAR(real[, timeperiod=?, nbdev=?])\n\n Variance (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdev: 1.0\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_VAR = {"stream_VAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_VAR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_VAR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdev); - if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_VAR") < 0)) __PYX_ERR(4, 5122, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5124, __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(4, 5124, __pyx_L3_error) - } else { - __pyx_v_nbdev = ((double)((double)-4e37)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5122, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5124, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_VAR", 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(4, 5144, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5145, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5146, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_VAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5149, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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_669stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE, " WCLPRICE(high, low, close)\n\n Weighted Close Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE}; -static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_WCLPRICE (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 1); __PYX_ERR(4, 5152, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 2); __PYX_ERR(4, 5152, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WCLPRICE") < 0)) __PYX_ERR(4, 5152, __pyx_L3_error) - } - } else if (unlikely(__pyx_nargs != 3)) { - goto __pyx_L5_argtuple_error; - } else { - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - } - __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("stream_WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5152, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WCLPRICE", 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(4, 5173, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5174, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5175, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5176, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 5177, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5178, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 5179, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WCLPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5183, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_WILLR, " WILLR(high, low, close[, timeperiod=?])\n\n Williams' %R (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_WILLR = {"stream_WILLR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_WILLR}; -static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -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; - #if !CYTHON_METH_FASTCALL - 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("stream_WILLR (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - CYTHON_FALLTHROUGH; - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 1); __PYX_ERR(4, 5185, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 2: - if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) - else { - __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 2); __PYX_ERR(4, 5185, __pyx_L3_error) - } - CYTHON_FALLTHROUGH; - case 3: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WILLR") < 0)) __PYX_ERR(4, 5185, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); - CYTHON_FALLTHROUGH; - case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); - values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5187, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5185, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_WILLR(__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; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_WILLR(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; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_high_data; - double *__pyx_v_low_data; - double *__pyx_v_close_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp __pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_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(4, 5208, __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_f_5numpy_7ndarray_4data_data(__pyx_v_high); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5209, __pyx_L1_error) - __pyx_v_high_data = ((double *)__pyx_t_2); - - __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5210, __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_5numpy_7ndarray_4data_data(__pyx_v_low); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5211, __pyx_L1_error) - __pyx_v_low_data = ((double *)__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(4, 5212, __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_5numpy_7ndarray_4data_data(__pyx_v_close); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5213, __pyx_L1_error) - __pyx_v_close_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5talib_7_ta_lib_check_length3(__pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_3 == ((npy_intp)-1))) __PYX_ERR(4, 5214, __pyx_L1_error) - __pyx_v_length = __pyx_t_3; - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WILLR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5217, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5218, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __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; -} - - -/* Python wrapper */ -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -); /*proto*/ -PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_WMA, " WMA(real[, timeperiod=?])\n\n Weighted Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); -static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_WMA = {"stream_WMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_WMA}; -static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, -#if CYTHON_METH_FASTCALL -PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds -#else -PyObject *__pyx_args, PyObject *__pyx_kwds -#endif -) { - PyArrayObject *__pyx_v_real = 0; - int __pyx_v_timeperiod; - #if !CYTHON_METH_FASTCALL - 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("stream_WMA (wrapper)", 0); - #if !CYTHON_METH_FASTCALL - #if CYTHON_ASSUME_SAFE_MACROS - __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); - #else - __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; - #endif - #endif - __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); - { - PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; - if (__pyx_kwds) { - Py_ssize_t kw_args; - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - CYTHON_FALLTHROUGH; - case 0: break; - default: goto __pyx_L5_argtuple_error; - } - kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); - switch (__pyx_nargs) { - case 0: - if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { - (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); - kw_args--; - } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5220, __pyx_L3_error) - else goto __pyx_L5_argtuple_error; - CYTHON_FALLTHROUGH; - case 1: - if (kw_args > 0) { - PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); - if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } - else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5220, __pyx_L3_error) - } - } - if (unlikely(kw_args > 0)) { - const Py_ssize_t kwd_pos_args = __pyx_nargs; - if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WMA") < 0)) __PYX_ERR(4, 5220, __pyx_L3_error) - } - } else { - switch (__pyx_nargs) { - case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); - CYTHON_FALLTHROUGH; - case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); - break; - default: goto __pyx_L5_argtuple_error; - } - } - __pyx_v_real = ((PyArrayObject *)values[0]); - if (values[1]) { - __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5222, __pyx_L3_error) - } else { - __pyx_v_timeperiod = ((int)((int)-2147483648)); - } - } - goto __pyx_L6_skip; - __pyx_L5_argtuple_error:; - __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5220, __pyx_L3_error) - __pyx_L6_skip:; - goto __pyx_L4_argument_unpacking_done; - __pyx_L3_error:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __Pyx_RefNannyFinishContext(); - return NULL; - __pyx_L4_argument_unpacking_done:; - if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5222, __pyx_L1_error) - __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); - - /* function exit code */ - goto __pyx_L0; - __pyx_L1_error:; - __pyx_r = NULL; - __pyx_L0:; - { - Py_ssize_t __pyx_temp; - for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { - __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); - } - } - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { - npy_intp __pyx_v_length; - TA_RetCode __pyx_v_retCode; - double *__pyx_v_real_data; - int __pyx_v_outbegidx; - int __pyx_v_outnbelement; - double __pyx_v_outreal; - PyObject *__pyx_r = NULL; - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - char *__pyx_t_2; - npy_intp *__pyx_t_3; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("stream_WMA", 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(4, 5241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); - __pyx_t_1 = 0; - - __pyx_t_2 = __pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real); if (unlikely(__pyx_t_2 == ((char *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5242, __pyx_L1_error) - __pyx_v_real_data = ((double *)__pyx_t_2); - - __pyx_t_3 = __pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real); if (unlikely(__pyx_t_3 == ((npy_intp *)NULL) && PyErr_Occurred())) __PYX_ERR(4, 5243, __pyx_L1_error) - __pyx_v_length = (__pyx_t_3[0]); - - __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - - __pyx_v_retCode = TA_WMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - - __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - - __Pyx_XDECREF(__pyx_r); - __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_r = __pyx_t_1; - __pyx_t_1 = 0; - goto __pyx_L0; - - - /* function exit code */ - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); - __pyx_r = NULL; - __pyx_L0:; - __Pyx_XDECREF((PyObject *)__pyx_v_real); - __Pyx_XGIVEREF(__pyx_r); - __Pyx_RefNannyFinishContext(); - return __pyx_r; -} - -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) -#else - #define CYTHON_SMALL_CODE -#endif -#endif -/* #### Code section: pystring_table ### */ - -static int __Pyx_CreateStringTabAndInitStrings(void) { - __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, - {&__pyx_n_s_ACOS, __pyx_k_ACOS, sizeof(__pyx_k_ACOS), 0, 0, 1, 1}, - {&__pyx_n_s_AD, __pyx_k_AD, sizeof(__pyx_k_AD), 0, 0, 1, 1}, - {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1}, - {&__pyx_n_s_ADOSC, __pyx_k_ADOSC, sizeof(__pyx_k_ADOSC), 0, 0, 1, 1}, - {&__pyx_n_s_ADX, __pyx_k_ADX, sizeof(__pyx_k_ADX), 0, 0, 1, 1}, - {&__pyx_n_s_ADXR, __pyx_k_ADXR, sizeof(__pyx_k_ADXR), 0, 0, 1, 1}, - {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1}, - {&__pyx_n_s_APO, __pyx_k_APO, sizeof(__pyx_k_APO), 0, 0, 1, 1}, - {&__pyx_n_s_AROON, __pyx_k_AROON, sizeof(__pyx_k_AROON), 0, 0, 1, 1}, - {&__pyx_n_s_AROONOSC, __pyx_k_AROONOSC, sizeof(__pyx_k_AROONOSC), 0, 0, 1, 1}, - {&__pyx_n_s_ARRAY_TYPES, __pyx_k_ARRAY_TYPES, sizeof(__pyx_k_ARRAY_TYPES), 0, 0, 1, 1}, - {&__pyx_n_s_ASIN, __pyx_k_ASIN, sizeof(__pyx_k_ASIN), 0, 0, 1, 1}, - {&__pyx_n_s_ATAN, __pyx_k_ATAN, sizeof(__pyx_k_ATAN), 0, 0, 1, 1}, - {&__pyx_n_s_ATR, __pyx_k_ATR, sizeof(__pyx_k_ATR), 0, 0, 1, 1}, - {&__pyx_n_s_AVGPRICE, __pyx_k_AVGPRICE, sizeof(__pyx_k_AVGPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_AllCandleSettings, __pyx_k_AllCandleSettings, sizeof(__pyx_k_AllCandleSettings), 0, 0, 1, 1}, - {&__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR, __pyx_k_Allocation_Error_TA_ALLOC_ERR, sizeof(__pyx_k_Allocation_Error_TA_ALLOC_ERR), 0, 0, 1, 0}, - {&__pyx_n_s_BBANDS, __pyx_k_BBANDS, sizeof(__pyx_k_BBANDS), 0, 0, 1, 1}, - {&__pyx_n_s_BETA, __pyx_k_BETA, sizeof(__pyx_k_BETA), 0, 0, 1, 1}, - {&__pyx_n_s_BOP, __pyx_k_BOP, sizeof(__pyx_k_BOP), 0, 0, 1, 1}, - {&__pyx_kp_s_Bad_Object_TA_BAD_OBJECT, __pyx_k_Bad_Object_TA_BAD_OBJECT, sizeof(__pyx_k_Bad_Object_TA_BAD_OBJECT), 0, 0, 1, 0}, - {&__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM, __pyx_k_Bad_Parameter_TA_BAD_PARAM, sizeof(__pyx_k_Bad_Parameter_TA_BAD_PARAM), 0, 0, 1, 0}, - {&__pyx_n_s_BodyDoji, __pyx_k_BodyDoji, sizeof(__pyx_k_BodyDoji), 0, 0, 1, 1}, - {&__pyx_n_s_BodyLong, __pyx_k_BodyLong, sizeof(__pyx_k_BodyLong), 0, 0, 1, 1}, - {&__pyx_n_s_BodyShort, __pyx_k_BodyShort, sizeof(__pyx_k_BodyShort), 0, 0, 1, 1}, - {&__pyx_n_s_BodyVeryLong, __pyx_k_BodyVeryLong, sizeof(__pyx_k_BodyVeryLong), 0, 0, 1, 1}, - {&__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut, __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut, sizeof(__pyx_k_Bull_Bear_Pattern_Bearish_0_Neut), 0, 0, 1, 0}, - {&__pyx_n_s_CCI, __pyx_k_CCI, sizeof(__pyx_k_CCI), 0, 0, 1, 1}, - {&__pyx_n_s_CDL2CROWS, __pyx_k_CDL2CROWS, sizeof(__pyx_k_CDL2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3BLACKCROWS, __pyx_k_CDL3BLACKCROWS, sizeof(__pyx_k_CDL3BLACKCROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3INSIDE, __pyx_k_CDL3INSIDE, sizeof(__pyx_k_CDL3INSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3LINESTRIKE, __pyx_k_CDL3LINESTRIKE, sizeof(__pyx_k_CDL3LINESTRIKE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3OUTSIDE, __pyx_k_CDL3OUTSIDE, sizeof(__pyx_k_CDL3OUTSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3STARSINSOUTH, __pyx_k_CDL3STARSINSOUTH, sizeof(__pyx_k_CDL3STARSINSOUTH), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3WHITESOLDIERS, __pyx_k_CDL3WHITESOLDIERS, sizeof(__pyx_k_CDL3WHITESOLDIERS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLABANDONEDBABY, __pyx_k_CDLABANDONEDBABY, sizeof(__pyx_k_CDLABANDONEDBABY), 0, 0, 1, 1}, - {&__pyx_n_s_CDLADVANCEBLOCK, __pyx_k_CDLADVANCEBLOCK, sizeof(__pyx_k_CDLADVANCEBLOCK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLBELTHOLD, __pyx_k_CDLBELTHOLD, sizeof(__pyx_k_CDLBELTHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLBREAKAWAY, __pyx_k_CDLBREAKAWAY, sizeof(__pyx_k_CDLBREAKAWAY), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_k_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCONCEALBABYSWALL, __pyx_k_CDLCONCEALBABYSWALL, sizeof(__pyx_k_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCOUNTERATTACK, __pyx_k_CDLCOUNTERATTACK, sizeof(__pyx_k_CDLCOUNTERATTACK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDARKCLOUDCOVER, __pyx_k_CDLDARKCLOUDCOVER, sizeof(__pyx_k_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDOJI, __pyx_k_CDLDOJI, sizeof(__pyx_k_CDLDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDOJISTAR, __pyx_k_CDLDOJISTAR, sizeof(__pyx_k_CDLDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDRAGONFLYDOJI, __pyx_k_CDLDRAGONFLYDOJI, sizeof(__pyx_k_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLENGULFING, __pyx_k_CDLENGULFING, sizeof(__pyx_k_CDLENGULFING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLEVENINGDOJISTAR, __pyx_k_CDLEVENINGDOJISTAR, sizeof(__pyx_k_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLEVENINGSTAR, __pyx_k_CDLEVENINGSTAR, sizeof(__pyx_k_CDLEVENINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_k_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLGRAVESTONEDOJI, __pyx_k_CDLGRAVESTONEDOJI, sizeof(__pyx_k_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHAMMER, __pyx_k_CDLHAMMER, sizeof(__pyx_k_CDLHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHANGINGMAN, __pyx_k_CDLHANGINGMAN, sizeof(__pyx_k_CDLHANGINGMAN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHARAMI, __pyx_k_CDLHARAMI, sizeof(__pyx_k_CDLHARAMI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHARAMICROSS, __pyx_k_CDLHARAMICROSS, sizeof(__pyx_k_CDLHARAMICROSS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIGHWAVE, __pyx_k_CDLHIGHWAVE, sizeof(__pyx_k_CDLHIGHWAVE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIKKAKE, __pyx_k_CDLHIKKAKE, sizeof(__pyx_k_CDLHIKKAKE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIKKAKEMOD, __pyx_k_CDLHIKKAKEMOD, sizeof(__pyx_k_CDLHIKKAKEMOD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHOMINGPIGEON, __pyx_k_CDLHOMINGPIGEON, sizeof(__pyx_k_CDLHOMINGPIGEON), 0, 0, 1, 1}, - {&__pyx_n_s_CDLIDENTICAL3CROWS, __pyx_k_CDLIDENTICAL3CROWS, sizeof(__pyx_k_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLINNECK, __pyx_k_CDLINNECK, sizeof(__pyx_k_CDLINNECK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLINVERTEDHAMMER, __pyx_k_CDLINVERTEDHAMMER, sizeof(__pyx_k_CDLINVERTEDHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLKICKING, __pyx_k_CDLKICKING, sizeof(__pyx_k_CDLKICKING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLKICKINGBYLENGTH, __pyx_k_CDLKICKINGBYLENGTH, sizeof(__pyx_k_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLADDERBOTTOM, __pyx_k_CDLLADDERBOTTOM, sizeof(__pyx_k_CDLLADDERBOTTOM), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_k_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLONGLINE, __pyx_k_CDLLONGLINE, sizeof(__pyx_k_CDLLONGLINE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMARUBOZU, __pyx_k_CDLMARUBOZU, sizeof(__pyx_k_CDLMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMATCHINGLOW, __pyx_k_CDLMATCHINGLOW, sizeof(__pyx_k_CDLMATCHINGLOW), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMATHOLD, __pyx_k_CDLMATHOLD, sizeof(__pyx_k_CDLMATHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMORNINGDOJISTAR, __pyx_k_CDLMORNINGDOJISTAR, sizeof(__pyx_k_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMORNINGSTAR, __pyx_k_CDLMORNINGSTAR, sizeof(__pyx_k_CDLMORNINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLONNECK, __pyx_k_CDLONNECK, sizeof(__pyx_k_CDLONNECK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLPIERCING, __pyx_k_CDLPIERCING, sizeof(__pyx_k_CDLPIERCING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLRICKSHAWMAN, __pyx_k_CDLRICKSHAWMAN, sizeof(__pyx_k_CDLRICKSHAWMAN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLRISEFALL3METHODS, __pyx_k_CDLRISEFALL3METHODS, sizeof(__pyx_k_CDLRISEFALL3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSEPARATINGLINES, __pyx_k_CDLSEPARATINGLINES, sizeof(__pyx_k_CDLSEPARATINGLINES), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSHOOTINGSTAR, __pyx_k_CDLSHOOTINGSTAR, sizeof(__pyx_k_CDLSHOOTINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSHORTLINE, __pyx_k_CDLSHORTLINE, sizeof(__pyx_k_CDLSHORTLINE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSPINNINGTOP, __pyx_k_CDLSPINNINGTOP, sizeof(__pyx_k_CDLSPINNINGTOP), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSTALLEDPATTERN, __pyx_k_CDLSTALLEDPATTERN, sizeof(__pyx_k_CDLSTALLEDPATTERN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSTICKSANDWICH, __pyx_k_CDLSTICKSANDWICH, sizeof(__pyx_k_CDLSTICKSANDWICH), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTAKURI, __pyx_k_CDLTAKURI, sizeof(__pyx_k_CDLTAKURI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTASUKIGAP, __pyx_k_CDLTASUKIGAP, sizeof(__pyx_k_CDLTASUKIGAP), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTHRUSTING, __pyx_k_CDLTHRUSTING, sizeof(__pyx_k_CDLTHRUSTING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTRISTAR, __pyx_k_CDLTRISTAR, sizeof(__pyx_k_CDLTRISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLUNIQUE3RIVER, __pyx_k_CDLUNIQUE3RIVER, sizeof(__pyx_k_CDLUNIQUE3RIVER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_k_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_k_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_CEIL, __pyx_k_CEIL, sizeof(__pyx_k_CEIL), 0, 0, 1, 1}, - {&__pyx_n_s_CMO, __pyx_k_CMO, sizeof(__pyx_k_CMO), 0, 0, 1, 1}, - {&__pyx_n_s_CORREL, __pyx_k_CORREL, sizeof(__pyx_k_CORREL), 0, 0, 1, 1}, - {&__pyx_n_s_COS, __pyx_k_COS, sizeof(__pyx_k_COS), 0, 0, 1, 1}, - {&__pyx_n_s_COSH, __pyx_k_COSH, sizeof(__pyx_k_COSH), 0, 0, 1, 1}, - {&__pyx_n_s_CandleSettingType, __pyx_k_CandleSettingType, sizeof(__pyx_k_CandleSettingType), 0, 0, 1, 1}, - {&__pyx_n_s_DEMA, __pyx_k_DEMA, sizeof(__pyx_k_DEMA), 0, 0, 1, 1}, - {&__pyx_n_s_DIV, __pyx_k_DIV, sizeof(__pyx_k_DIV), 0, 0, 1, 1}, - {&__pyx_n_s_DX, __pyx_k_DX, sizeof(__pyx_k_DX), 0, 0, 1, 1}, - {&__pyx_kp_s_Dashed_Line, __pyx_k_Dashed_Line, sizeof(__pyx_k_Dashed_Line), 0, 0, 1, 0}, - {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1}, - {&__pyx_n_s_Dot, __pyx_k_Dot, sizeof(__pyx_k_Dot), 0, 0, 1, 1}, - {&__pyx_kp_s_Dotted_Line, __pyx_k_Dotted_Line, sizeof(__pyx_k_Dotted_Line), 0, 0, 1, 0}, - {&__pyx_kp_s_Double_Exponential_Moving_Averag, __pyx_k_Double_Exponential_Moving_Averag, sizeof(__pyx_k_Double_Exponential_Moving_Averag), 0, 0, 1, 0}, - {&__pyx_n_s_EMA, __pyx_k_EMA, sizeof(__pyx_k_EMA), 0, 0, 1, 1}, - {&__pyx_n_s_EXP, __pyx_k_EXP, sizeof(__pyx_k_EXP), 0, 0, 1, 1}, - {&__pyx_n_s_Equal, __pyx_k_Equal, sizeof(__pyx_k_Equal), 0, 0, 1, 1}, - {&__pyx_kp_s_Exponential_Moving_Average, __pyx_k_Exponential_Moving_Average, sizeof(__pyx_k_Exponential_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_FLOOR, __pyx_k_FLOOR, sizeof(__pyx_k_FLOOR), 0, 0, 1, 1}, - {&__pyx_n_s_Far, __pyx_k_Far, sizeof(__pyx_k_Far), 0, 0, 1, 1}, - {&__pyx_n_s_Function, __pyx_k_Function, sizeof(__pyx_k_Function), 0, 0, 1, 1}, - {&__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F, __pyx_k_Function_Not_Found_TA_FUNC_NOT_F, sizeof(__pyx_k_Function_Not_Found_TA_FUNC_NOT_F), 0, 0, 1, 0}, - {&__pyx_n_s_Function___call, __pyx_k_Function___call, sizeof(__pyx_k_Function___call), 0, 0, 1, 1}, - {&__pyx_n_s_Function___call_function, __pyx_k_Function___call_function, sizeof(__pyx_k_Function___call_function), 0, 0, 1, 1}, - {&__pyx_n_s_Function___check_opt_input_value, __pyx_k_Function___check_opt_input_value, sizeof(__pyx_k_Function___check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function___get_opt_input_value, __pyx_k_Function___get_opt_input_value, sizeof(__pyx_k_Function___get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function___init, __pyx_k_Function___init, sizeof(__pyx_k_Function___init), 0, 0, 1, 1}, - {&__pyx_n_s_Function___input_price_series_na, __pyx_k_Function___input_price_series_na, sizeof(__pyx_k_Function___input_price_series_na), 0, 0, 1, 1}, - {&__pyx_n_s_Function___local, __pyx_k_Function___local, sizeof(__pyx_k_Function___local), 0, 0, 1, 1}, - {&__pyx_n_s_Function___repr, __pyx_k_Function___repr, sizeof(__pyx_k_Function___repr), 0, 0, 1, 1}, - {&__pyx_n_s_Function___str, __pyx_k_Function___str, sizeof(__pyx_k_Function___str), 0, 0, 1, 1}, - {&__pyx_n_s_Function___unicode, __pyx_k_Function___unicode, sizeof(__pyx_k_Function___unicode), 0, 0, 1, 1}, - {&__pyx_n_s_Function__call_function, __pyx_k_Function__call_function, sizeof(__pyx_k_Function__call_function), 0, 0, 1, 1}, - {&__pyx_n_s_Function__check_opt_input_value, __pyx_k_Function__check_opt_input_value, sizeof(__pyx_k_Function__check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function__get_opt_input_value, __pyx_k_Function__get_opt_input_value, sizeof(__pyx_k_Function__get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function__input_price_series_na, __pyx_k_Function__input_price_series_na, sizeof(__pyx_k_Function__input_price_series_na), 0, 0, 1, 1}, - {&__pyx_n_s_Function__local, __pyx_k_Function__local, sizeof(__pyx_k_Function__local), 0, 0, 1, 1}, - {&__pyx_n_s_Function__localdata, __pyx_k_Function__localdata, sizeof(__pyx_k_Function__localdata), 0, 0, 1, 1}, - {&__pyx_n_s_Function__name, __pyx_k_Function__name, sizeof(__pyx_k_Function__name), 0, 0, 1, 1}, - {&__pyx_n_s_Function__namestr, __pyx_k_Function__namestr, sizeof(__pyx_k_Function__namestr), 0, 0, 1, 1}, - {&__pyx_n_s_Function_function_flags, __pyx_k_Function_function_flags, sizeof(__pyx_k_Function_function_flags), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_input_arrays, __pyx_k_Function_get_input_arrays, sizeof(__pyx_k_Function_get_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_input_names, __pyx_k_Function_get_input_names, sizeof(__pyx_k_Function_get_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_parameters, __pyx_k_Function_get_parameters, sizeof(__pyx_k_Function_get_parameters), 0, 0, 1, 1}, - {&__pyx_kp_s_Function_has_an_unstable_period, __pyx_k_Function_has_an_unstable_period, sizeof(__pyx_k_Function_has_an_unstable_period), 0, 0, 1, 0}, - {&__pyx_n_s_Function_info, __pyx_k_Function_info, sizeof(__pyx_k_Function_info), 0, 0, 1, 1}, - {&__pyx_n_s_Function_lookback, __pyx_k_Function_lookback, sizeof(__pyx_k_Function_lookback), 0, 0, 1, 1}, - {&__pyx_n_s_Function_output_flags, __pyx_k_Function_output_flags, sizeof(__pyx_k_Function_output_flags), 0, 0, 1, 1}, - {&__pyx_n_s_Function_output_names, __pyx_k_Function_output_names, sizeof(__pyx_k_Function_output_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_outputs, __pyx_k_Function_outputs, sizeof(__pyx_k_Function_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_Function_run, __pyx_k_Function_run, sizeof(__pyx_k_Function_run), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_function_args, __pyx_k_Function_set_function_args, sizeof(__pyx_k_Function_set_function_args), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_input_arrays, __pyx_k_Function_set_input_arrays, sizeof(__pyx_k_Function_set_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_input_names, __pyx_k_Function_set_input_names, sizeof(__pyx_k_Function_set_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_parameters, __pyx_k_Function_set_parameters, sizeof(__pyx_k_Function_set_parameters), 0, 0, 1, 1}, - {&__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU, __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU, sizeof(__pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU), 0, 0, 1, 0}, - {&__pyx_n_s_HT_DCPERIOD, __pyx_k_HT_DCPERIOD, sizeof(__pyx_k_HT_DCPERIOD), 0, 0, 1, 1}, - {&__pyx_n_s_HT_DCPHASE, __pyx_k_HT_DCPHASE, sizeof(__pyx_k_HT_DCPHASE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_PHASOR, __pyx_k_HT_PHASOR, sizeof(__pyx_k_HT_PHASOR), 0, 0, 1, 1}, - {&__pyx_n_s_HT_SINE, __pyx_k_HT_SINE, sizeof(__pyx_k_HT_SINE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_TRENDLINE, __pyx_k_HT_TRENDLINE, sizeof(__pyx_k_HT_TRENDLINE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_TRENDMODE, __pyx_k_HT_TRENDMODE, sizeof(__pyx_k_HT_TRENDMODE), 0, 0, 1, 1}, - {&__pyx_n_s_HighLow, __pyx_k_HighLow, sizeof(__pyx_k_HighLow), 0, 0, 1, 1}, - {&__pyx_n_s_Histogram, __pyx_k_Histogram, sizeof(__pyx_k_Histogram), 0, 0, 1, 1}, - {&__pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_k_INPUT_ARRAYS_TYPES, sizeof(__pyx_k_INPUT_ARRAYS_TYPES), 0, 0, 1, 1}, - {&__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_k_INPUT_PRICE_SERIES_DEFAULTS, sizeof(__pyx_k_INPUT_PRICE_SERIES_DEFAULTS), 0, 0, 1, 1}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, - {&__pyx_kp_s_Input_Not_All_Initialized_TA_INP, __pyx_k_Input_Not_All_Initialized_TA_INP, sizeof(__pyx_k_Input_Not_All_Initialized_TA_INP), 0, 0, 1, 0}, - {&__pyx_kp_s_Inputs, __pyx_k_Inputs, sizeof(__pyx_k_Inputs), 0, 0, 1, 0}, - {&__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR, __pyx_k_Internal_Error_TA_INTERNAL_ERROR, sizeof(__pyx_k_Internal_Error_TA_INTERNAL_ERROR), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE, __pyx_k_Invalid_Handle_TA_INVALID_HANDLE, sizeof(__pyx_k_Invalid_Handle_TA_INVALID_HANDLE), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS, __pyx_k_Invalid_List_Type_TA_INVALID_LIS, sizeof(__pyx_k_Invalid_List_Type_TA_INVALID_LIS), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Function_TA_IN, __pyx_k_Invalid_Parameter_Function_TA_IN, sizeof(__pyx_k_Invalid_Parameter_Function_TA_IN), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA, __pyx_k_Invalid_Parameter_Holder_TA_INVA, sizeof(__pyx_k_Invalid_Parameter_Holder_TA_INVA), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Holder_Type_TA, __pyx_k_Invalid_Parameter_Holder_Type_TA, sizeof(__pyx_k_Invalid_Parameter_Holder_Type_TA), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_k_Invalid_parameter_value_for_s_ex, sizeof(__pyx_k_Invalid_parameter_value_for_s_ex), 0, 0, 1, 0}, - {&__pyx_n_s_KAMA, __pyx_k_KAMA, sizeof(__pyx_k_KAMA), 0, 0, 1, 1}, - {&__pyx_kp_s_Kaufman_Adaptive_Moving_Average, __pyx_k_Kaufman_Adaptive_Moving_Average, sizeof(__pyx_k_Kaufman_Adaptive_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_LINEARREG, __pyx_k_LINEARREG, sizeof(__pyx_k_LINEARREG), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_ANGLE, __pyx_k_LINEARREG_ANGLE, sizeof(__pyx_k_LINEARREG_ANGLE), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_INTERCEPT, __pyx_k_LINEARREG_INTERCEPT, sizeof(__pyx_k_LINEARREG_INTERCEPT), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_SLOPE, __pyx_k_LINEARREG_SLOPE, sizeof(__pyx_k_LINEARREG_SLOPE), 0, 0, 1, 1}, - {&__pyx_n_s_LN, __pyx_k_LN, sizeof(__pyx_k_LN), 0, 0, 1, 1}, - {&__pyx_n_s_LOG10, __pyx_k_LOG10, sizeof(__pyx_k_LOG10), 0, 0, 1, 1}, - {&__pyx_kp_s_Library_Not_Initialized_TA_LIB_N, __pyx_k_Library_Not_Initialized_TA_LIB_N, sizeof(__pyx_k_Library_Not_Initialized_TA_LIB_N), 0, 0, 1, 0}, - {&__pyx_n_s_Line, __pyx_k_Line, sizeof(__pyx_k_Line), 0, 0, 1, 1}, - {&__pyx_n_s_MA, __pyx_k_MA, sizeof(__pyx_k_MA), 0, 0, 1, 1}, - {&__pyx_n_s_MACD, __pyx_k_MACD, sizeof(__pyx_k_MACD), 0, 0, 1, 1}, - {&__pyx_n_s_MACDEXT, __pyx_k_MACDEXT, sizeof(__pyx_k_MACDEXT), 0, 0, 1, 1}, - {&__pyx_n_s_MACDFIX, __pyx_k_MACDFIX, sizeof(__pyx_k_MACDFIX), 0, 0, 1, 1}, - {&__pyx_n_s_MAMA, __pyx_k_MAMA, sizeof(__pyx_k_MAMA), 0, 0, 1, 1}, - {&__pyx_n_s_MAVP, __pyx_k_MAVP, sizeof(__pyx_k_MAVP), 0, 0, 1, 1}, - {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1}, - {&__pyx_n_s_MAXINDEX, __pyx_k_MAXINDEX, sizeof(__pyx_k_MAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type, __pyx_k_MA_Type, sizeof(__pyx_k_MA_Type), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type___getitem, __pyx_k_MA_Type___getitem, sizeof(__pyx_k_MA_Type___getitem), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type___init, __pyx_k_MA_Type___init, sizeof(__pyx_k_MA_Type___init), 0, 0, 1, 1}, - {&__pyx_n_s_MEDPRICE, __pyx_k_MEDPRICE, sizeof(__pyx_k_MEDPRICE), 0, 0, 1, 1}, - {&__pyx_kp_s_MESA_Adaptive_Moving_Average, __pyx_k_MESA_Adaptive_Moving_Average, sizeof(__pyx_k_MESA_Adaptive_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_MFI, __pyx_k_MFI, sizeof(__pyx_k_MFI), 0, 0, 1, 1}, - {&__pyx_n_s_MIDPOINT, __pyx_k_MIDPOINT, sizeof(__pyx_k_MIDPOINT), 0, 0, 1, 1}, - {&__pyx_n_s_MIDPRICE, __pyx_k_MIDPRICE, sizeof(__pyx_k_MIDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_MIN, __pyx_k_MIN, sizeof(__pyx_k_MIN), 0, 0, 1, 1}, - {&__pyx_n_s_MININDEX, __pyx_k_MININDEX, sizeof(__pyx_k_MININDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MINMAX, __pyx_k_MINMAX, sizeof(__pyx_k_MINMAX), 0, 0, 1, 1}, - {&__pyx_n_s_MINMAXINDEX, __pyx_k_MINMAXINDEX, sizeof(__pyx_k_MINMAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MINUS_DI, __pyx_k_MINUS_DI, sizeof(__pyx_k_MINUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_MINUS_DM, __pyx_k_MINUS_DM, sizeof(__pyx_k_MINUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_MOM, __pyx_k_MOM, sizeof(__pyx_k_MOM), 0, 0, 1, 1}, - {&__pyx_n_s_MULT, __pyx_k_MULT, sizeof(__pyx_k_MULT), 0, 0, 1, 1}, - {&__pyx_n_s_ModuleNotFoundError, __pyx_k_ModuleNotFoundError, sizeof(__pyx_k_ModuleNotFoundError), 0, 0, 1, 1}, - {&__pyx_n_s_NATR, __pyx_k_NATR, sizeof(__pyx_k_NATR), 0, 0, 1, 1}, - {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, - {&__pyx_n_s_NameError, __pyx_k_NameError, sizeof(__pyx_k_NameError), 0, 0, 1, 1}, - {&__pyx_n_s_Near, __pyx_k_Near, sizeof(__pyx_k_Near), 0, 0, 1, 1}, - {&__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED, __pyx_k_Not_Supported_TA_NOT_SUPPORTED, sizeof(__pyx_k_Not_Supported_TA_NOT_SUPPORTED), 0, 0, 1, 0}, - {&__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_k_Not_enough_price_arguments_expec, sizeof(__pyx_k_Not_enough_price_arguments_expec), 0, 0, 1, 0}, - {&__pyx_n_s_OBV, __pyx_k_OBV, sizeof(__pyx_k_OBV), 0, 0, 1, 1}, - {&__pyx_n_s_OrderedDict, __pyx_k_OrderedDict, sizeof(__pyx_k_OrderedDict), 0, 0, 1, 1}, - {&__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF, __pyx_k_Out_of_Range_End_Index_TA_OUT_OF, sizeof(__pyx_k_Out_of_Range_End_Index_TA_OUT_OF), 0, 0, 1, 0}, - {&__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT, __pyx_k_Out_of_Range_Start_Index_TA_OUT, sizeof(__pyx_k_Out_of_Range_Start_Index_TA_OUT), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_Not_All_Initialized_TA_OU, __pyx_k_Output_Not_All_Initialized_TA_OU, sizeof(__pyx_k_Output_Not_All_Initialized_TA_OU), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_negative, __pyx_k_Output_can_be_negative, sizeof(__pyx_k_Output_can_be_negative), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_positive, __pyx_k_Output_can_be_positive, sizeof(__pyx_k_Output_can_be_positive), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_zero, __pyx_k_Output_can_be_zero, sizeof(__pyx_k_Output_can_be_zero), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_is_a_candlestick, __pyx_k_Output_is_a_candlestick, sizeof(__pyx_k_Output_is_a_candlestick), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_is_over_volume, __pyx_k_Output_is_over_volume, sizeof(__pyx_k_Output_is_over_volume), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_scale_same_as_input, __pyx_k_Output_scale_same_as_input, sizeof(__pyx_k_Output_scale_same_as_input), 0, 0, 1, 0}, - {&__pyx_kp_s_Outputs, __pyx_k_Outputs, sizeof(__pyx_k_Outputs), 0, 0, 1, 0}, - {&__pyx_n_s_PANDAS_DATAFRAME, __pyx_k_PANDAS_DATAFRAME, sizeof(__pyx_k_PANDAS_DATAFRAME), 0, 0, 1, 1}, - {&__pyx_n_s_PANDAS_SERIES, __pyx_k_PANDAS_SERIES, sizeof(__pyx_k_PANDAS_SERIES), 0, 0, 1, 1}, - {&__pyx_n_s_PLUS_DI, __pyx_k_PLUS_DI, sizeof(__pyx_k_PLUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_PLUS_DM, __pyx_k_PLUS_DM, sizeof(__pyx_k_PLUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_POLARS_DATAFRAME, __pyx_k_POLARS_DATAFRAME, sizeof(__pyx_k_POLARS_DATAFRAME), 0, 0, 1, 1}, - {&__pyx_n_s_POLARS_SERIES, __pyx_k_POLARS_SERIES, sizeof(__pyx_k_POLARS_SERIES), 0, 0, 1, 1}, - {&__pyx_n_s_PPO, __pyx_k_PPO, sizeof(__pyx_k_PPO), 0, 0, 1, 1}, - {&__pyx_kp_s_Parameters, __pyx_k_Parameters, sizeof(__pyx_k_Parameters), 0, 0, 1, 0}, - {&__pyx_kp_s_Pattern_Bool, __pyx_k_Pattern_Bool, sizeof(__pyx_k_Pattern_Bool), 0, 0, 1, 0}, - {&__pyx_n_s_ROC, __pyx_k_ROC, sizeof(__pyx_k_ROC), 0, 0, 1, 1}, - {&__pyx_n_s_ROCP, __pyx_k_ROCP, sizeof(__pyx_k_ROCP), 0, 0, 1, 1}, - {&__pyx_n_s_ROCR, __pyx_k_ROCR, sizeof(__pyx_k_ROCR), 0, 0, 1, 1}, - {&__pyx_n_s_ROCR100, __pyx_k_ROCR100, sizeof(__pyx_k_ROCR100), 0, 0, 1, 1}, - {&__pyx_n_s_RSI, __pyx_k_RSI, sizeof(__pyx_k_RSI), 0, 0, 1, 1}, - {&__pyx_n_s_RangeType, __pyx_k_RangeType, sizeof(__pyx_k_RangeType), 0, 0, 1, 1}, - {&__pyx_n_s_RealBody, __pyx_k_RealBody, sizeof(__pyx_k_RealBody), 0, 0, 1, 1}, - {&__pyx_n_s_SAR, __pyx_k_SAR, sizeof(__pyx_k_SAR), 0, 0, 1, 1}, - {&__pyx_n_s_SAREXT, __pyx_k_SAREXT, sizeof(__pyx_k_SAREXT), 0, 0, 1, 1}, - {&__pyx_n_s_SIN, __pyx_k_SIN, sizeof(__pyx_k_SIN), 0, 0, 1, 1}, - {&__pyx_n_s_SINH, __pyx_k_SINH, sizeof(__pyx_k_SINH), 0, 0, 1, 1}, - {&__pyx_n_s_SMA, __pyx_k_SMA, sizeof(__pyx_k_SMA), 0, 0, 1, 1}, - {&__pyx_n_s_SQRT, __pyx_k_SQRT, sizeof(__pyx_k_SQRT), 0, 0, 1, 1}, - {&__pyx_n_s_STDDEV, __pyx_k_STDDEV, sizeof(__pyx_k_STDDEV), 0, 0, 1, 1}, - {&__pyx_n_s_STOCH, __pyx_k_STOCH, sizeof(__pyx_k_STOCH), 0, 0, 1, 1}, - {&__pyx_n_s_STOCHF, __pyx_k_STOCHF, sizeof(__pyx_k_STOCHF), 0, 0, 1, 1}, - {&__pyx_n_s_STOCHRSI, __pyx_k_STOCHRSI, sizeof(__pyx_k_STOCHRSI), 0, 0, 1, 1}, - {&__pyx_n_s_SUB, __pyx_k_SUB, sizeof(__pyx_k_SUB), 0, 0, 1, 1}, - {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1}, - {&__pyx_n_s_Series, __pyx_k_Series, sizeof(__pyx_k_Series), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowLong, __pyx_k_ShadowLong, sizeof(__pyx_k_ShadowLong), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowShort, __pyx_k_ShadowShort, sizeof(__pyx_k_ShadowShort), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowVeryLong, __pyx_k_ShadowVeryLong, sizeof(__pyx_k_ShadowVeryLong), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowVeryShort, __pyx_k_ShadowVeryShort, sizeof(__pyx_k_ShadowVeryShort), 0, 0, 1, 1}, - {&__pyx_n_s_Shadows, __pyx_k_Shadows, sizeof(__pyx_k_Shadows), 0, 0, 1, 1}, - {&__pyx_kp_s_Simple_Moving_Average, __pyx_k_Simple_Moving_Average, sizeof(__pyx_k_Simple_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s_Strength_Pattern_200_100_Bearish, __pyx_k_Strength_Pattern_200_100_Bearish, sizeof(__pyx_k_Strength_Pattern_200_100_Bearish), 0, 0, 1, 0}, - {&__pyx_n_s_T3, __pyx_k_T3, sizeof(__pyx_k_T3), 0, 0, 1, 1}, - {&__pyx_n_s_TAN, __pyx_k_TAN, sizeof(__pyx_k_TAN), 0, 0, 1, 1}, - {&__pyx_n_s_TANH, __pyx_k_TANH, sizeof(__pyx_k_TANH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ACOS, __pyx_k_TA_ACOS, sizeof(__pyx_k_TA_ACOS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AD, __pyx_k_TA_AD, sizeof(__pyx_k_TA_AD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADD, __pyx_k_TA_ADD, sizeof(__pyx_k_TA_ADD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADOSC, __pyx_k_TA_ADOSC, sizeof(__pyx_k_TA_ADOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADX, __pyx_k_TA_ADX, sizeof(__pyx_k_TA_ADX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADXR, __pyx_k_TA_ADXR, sizeof(__pyx_k_TA_ADXR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_APO, __pyx_k_TA_APO, sizeof(__pyx_k_TA_APO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AROON, __pyx_k_TA_AROON, sizeof(__pyx_k_TA_AROON), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AROONOSC, __pyx_k_TA_AROONOSC, sizeof(__pyx_k_TA_AROONOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ASIN, __pyx_k_TA_ASIN, sizeof(__pyx_k_TA_ASIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ATAN, __pyx_k_TA_ATAN, sizeof(__pyx_k_TA_ATAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ATR, __pyx_k_TA_ATR, sizeof(__pyx_k_TA_ATR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AVGPRICE, __pyx_k_TA_AVGPRICE, sizeof(__pyx_k_TA_AVGPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BBANDS, __pyx_k_TA_BBANDS, sizeof(__pyx_k_TA_BBANDS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BETA, __pyx_k_TA_BETA, sizeof(__pyx_k_TA_BETA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BOP, __pyx_k_TA_BOP, sizeof(__pyx_k_TA_BOP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CCI, __pyx_k_TA_CCI, sizeof(__pyx_k_TA_CCI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL2CROWS, __pyx_k_TA_CDL2CROWS, sizeof(__pyx_k_TA_CDL2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_k_TA_CDL3BLACKCROWS, sizeof(__pyx_k_TA_CDL3BLACKCROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3INSIDE, __pyx_k_TA_CDL3INSIDE, sizeof(__pyx_k_TA_CDL3INSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_k_TA_CDL3LINESTRIKE, sizeof(__pyx_k_TA_CDL3LINESTRIKE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3OUTSIDE, __pyx_k_TA_CDL3OUTSIDE, sizeof(__pyx_k_TA_CDL3OUTSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_k_TA_CDL3STARSINSOUTH, sizeof(__pyx_k_TA_CDL3STARSINSOUTH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_k_TA_CDL3WHITESOLDIERS, sizeof(__pyx_k_TA_CDL3WHITESOLDIERS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_k_TA_CDLABANDONEDBABY, sizeof(__pyx_k_TA_CDLABANDONEDBABY), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_k_TA_CDLADVANCEBLOCK, sizeof(__pyx_k_TA_CDLADVANCEBLOCK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLBELTHOLD, __pyx_k_TA_CDLBELTHOLD, sizeof(__pyx_k_TA_CDLBELTHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLBREAKAWAY, __pyx_k_TA_CDLBREAKAWAY, sizeof(__pyx_k_TA_CDLBREAKAWAY), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_k_TA_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_TA_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_k_TA_CDLCONCEALBABYSWALL, sizeof(__pyx_k_TA_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_k_TA_CDLCOUNTERATTACK, sizeof(__pyx_k_TA_CDLCOUNTERATTACK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_k_TA_CDLDARKCLOUDCOVER, sizeof(__pyx_k_TA_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDOJI, __pyx_k_TA_CDLDOJI, sizeof(__pyx_k_TA_CDLDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDOJISTAR, __pyx_k_TA_CDLDOJISTAR, sizeof(__pyx_k_TA_CDLDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_k_TA_CDLDRAGONFLYDOJI, sizeof(__pyx_k_TA_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLENGULFING, __pyx_k_TA_CDLENGULFING, sizeof(__pyx_k_TA_CDLENGULFING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_k_TA_CDLEVENINGDOJISTAR, sizeof(__pyx_k_TA_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_k_TA_CDLEVENINGSTAR, sizeof(__pyx_k_TA_CDLEVENINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_k_TA_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_TA_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_k_TA_CDLGRAVESTONEDOJI, sizeof(__pyx_k_TA_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHAMMER, __pyx_k_TA_CDLHAMMER, sizeof(__pyx_k_TA_CDLHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHANGINGMAN, __pyx_k_TA_CDLHANGINGMAN, sizeof(__pyx_k_TA_CDLHANGINGMAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHARAMI, __pyx_k_TA_CDLHARAMI, sizeof(__pyx_k_TA_CDLHARAMI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHARAMICROSS, __pyx_k_TA_CDLHARAMICROSS, sizeof(__pyx_k_TA_CDLHARAMICROSS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIGHWAVE, __pyx_k_TA_CDLHIGHWAVE, sizeof(__pyx_k_TA_CDLHIGHWAVE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIKKAKE, __pyx_k_TA_CDLHIKKAKE, sizeof(__pyx_k_TA_CDLHIKKAKE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_k_TA_CDLHIKKAKEMOD, sizeof(__pyx_k_TA_CDLHIKKAKEMOD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_k_TA_CDLHOMINGPIGEON, sizeof(__pyx_k_TA_CDLHOMINGPIGEON), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_k_TA_CDLIDENTICAL3CROWS, sizeof(__pyx_k_TA_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLINNECK, __pyx_k_TA_CDLINNECK, sizeof(__pyx_k_TA_CDLINNECK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_k_TA_CDLINVERTEDHAMMER, sizeof(__pyx_k_TA_CDLINVERTEDHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLKICKING, __pyx_k_TA_CDLKICKING, sizeof(__pyx_k_TA_CDLKICKING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_k_TA_CDLKICKINGBYLENGTH, sizeof(__pyx_k_TA_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_k_TA_CDLLADDERBOTTOM, sizeof(__pyx_k_TA_CDLLADDERBOTTOM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_k_TA_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_TA_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLONGLINE, __pyx_k_TA_CDLLONGLINE, sizeof(__pyx_k_TA_CDLLONGLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMARUBOZU, __pyx_k_TA_CDLMARUBOZU, sizeof(__pyx_k_TA_CDLMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_k_TA_CDLMATCHINGLOW, sizeof(__pyx_k_TA_CDLMATCHINGLOW), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMATHOLD, __pyx_k_TA_CDLMATHOLD, sizeof(__pyx_k_TA_CDLMATHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_k_TA_CDLMORNINGDOJISTAR, sizeof(__pyx_k_TA_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_k_TA_CDLMORNINGSTAR, sizeof(__pyx_k_TA_CDLMORNINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLONNECK, __pyx_k_TA_CDLONNECK, sizeof(__pyx_k_TA_CDLONNECK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLPIERCING, __pyx_k_TA_CDLPIERCING, sizeof(__pyx_k_TA_CDLPIERCING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_k_TA_CDLRICKSHAWMAN, sizeof(__pyx_k_TA_CDLRICKSHAWMAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_k_TA_CDLRISEFALL3METHODS, sizeof(__pyx_k_TA_CDLRISEFALL3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_k_TA_CDLSEPARATINGLINES, sizeof(__pyx_k_TA_CDLSEPARATINGLINES), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_k_TA_CDLSHOOTINGSTAR, sizeof(__pyx_k_TA_CDLSHOOTINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSHORTLINE, __pyx_k_TA_CDLSHORTLINE, sizeof(__pyx_k_TA_CDLSHORTLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_k_TA_CDLSPINNINGTOP, sizeof(__pyx_k_TA_CDLSPINNINGTOP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_k_TA_CDLSTALLEDPATTERN, sizeof(__pyx_k_TA_CDLSTALLEDPATTERN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_k_TA_CDLSTICKSANDWICH, sizeof(__pyx_k_TA_CDLSTICKSANDWICH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTAKURI, __pyx_k_TA_CDLTAKURI, sizeof(__pyx_k_TA_CDLTAKURI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTASUKIGAP, __pyx_k_TA_CDLTASUKIGAP, sizeof(__pyx_k_TA_CDLTASUKIGAP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTHRUSTING, __pyx_k_TA_CDLTHRUSTING, sizeof(__pyx_k_TA_CDLTHRUSTING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTRISTAR, __pyx_k_TA_CDLTRISTAR, sizeof(__pyx_k_TA_CDLTRISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_k_TA_CDLUNIQUE3RIVER, sizeof(__pyx_k_TA_CDLUNIQUE3RIVER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_k_TA_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_TA_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_k_TA_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_TA_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CEIL, __pyx_k_TA_CEIL, sizeof(__pyx_k_TA_CEIL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CMO, __pyx_k_TA_CMO, sizeof(__pyx_k_TA_CMO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CORREL, __pyx_k_TA_CORREL, sizeof(__pyx_k_TA_CORREL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_COS, __pyx_k_TA_COS, sizeof(__pyx_k_TA_COS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_COSH, __pyx_k_TA_COSH, sizeof(__pyx_k_TA_COSH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DEMA, __pyx_k_TA_DEMA, sizeof(__pyx_k_TA_DEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DIV, __pyx_k_TA_DIV, sizeof(__pyx_k_TA_DIV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DX, __pyx_k_TA_DX, sizeof(__pyx_k_TA_DX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_EMA, __pyx_k_TA_EMA, sizeof(__pyx_k_TA_EMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_EXP, __pyx_k_TA_EXP, sizeof(__pyx_k_TA_EXP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FLOOR, __pyx_k_TA_FLOOR, sizeof(__pyx_k_TA_FLOOR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FUNCTION_NAMES, __pyx_k_TA_FUNCTION_NAMES, sizeof(__pyx_k_TA_FUNCTION_NAMES), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FUNC_FLAGS, __pyx_k_TA_FUNC_FLAGS, sizeof(__pyx_k_TA_FUNC_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FuncTableAlloc, __pyx_k_TA_FuncTableAlloc, sizeof(__pyx_k_TA_FuncTableAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FuncTableFree, __pyx_k_TA_FuncTableFree, sizeof(__pyx_k_TA_FuncTableFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetFuncHandle, __pyx_k_TA_GetFuncHandle, sizeof(__pyx_k_TA_GetFuncHandle), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetFuncInfo, __pyx_k_TA_GetFuncInfo, sizeof(__pyx_k_TA_GetFuncInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetInputParameterInfo, __pyx_k_TA_GetInputParameterInfo, sizeof(__pyx_k_TA_GetInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetLookback, __pyx_k_TA_GetLookback, sizeof(__pyx_k_TA_GetLookback), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_k_TA_GetOptInputParameterInfo, sizeof(__pyx_k_TA_GetOptInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetOutputParameterInfo, __pyx_k_TA_GetOutputParameterInfo, sizeof(__pyx_k_TA_GetOutputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GroupTableAlloc, __pyx_k_TA_GroupTableAlloc, sizeof(__pyx_k_TA_GroupTableAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GroupTableFree, __pyx_k_TA_GroupTableFree, sizeof(__pyx_k_TA_GroupTableFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_DCPERIOD, __pyx_k_TA_HT_DCPERIOD, sizeof(__pyx_k_TA_HT_DCPERIOD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_DCPHASE, __pyx_k_TA_HT_DCPHASE, sizeof(__pyx_k_TA_HT_DCPHASE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_PHASOR, __pyx_k_TA_HT_PHASOR, sizeof(__pyx_k_TA_HT_PHASOR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_SINE, __pyx_k_TA_HT_SINE, sizeof(__pyx_k_TA_HT_SINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_TRENDLINE, __pyx_k_TA_HT_TRENDLINE, sizeof(__pyx_k_TA_HT_TRENDLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_TRENDMODE, __pyx_k_TA_HT_TRENDMODE, sizeof(__pyx_k_TA_HT_TRENDMODE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_INPUT_FLAGS, __pyx_k_TA_INPUT_FLAGS, sizeof(__pyx_k_TA_INPUT_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_Initialize, __pyx_k_TA_Initialize, sizeof(__pyx_k_TA_Initialize), 0, 0, 1, 1}, - {&__pyx_n_s_TA_KAMA, __pyx_k_TA_KAMA, sizeof(__pyx_k_TA_KAMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG, __pyx_k_TA_LINEARREG, sizeof(__pyx_k_TA_LINEARREG), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_k_TA_LINEARREG_ANGLE, sizeof(__pyx_k_TA_LINEARREG_ANGLE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_k_TA_LINEARREG_INTERCEPT, sizeof(__pyx_k_TA_LINEARREG_INTERCEPT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_k_TA_LINEARREG_SLOPE, sizeof(__pyx_k_TA_LINEARREG_SLOPE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LN, __pyx_k_TA_LN, sizeof(__pyx_k_TA_LN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LOG10, __pyx_k_TA_LOG10, sizeof(__pyx_k_TA_LOG10), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MA, __pyx_k_TA_MA, sizeof(__pyx_k_TA_MA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACD, __pyx_k_TA_MACD, sizeof(__pyx_k_TA_MACD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACDEXT, __pyx_k_TA_MACDEXT, sizeof(__pyx_k_TA_MACDEXT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACDFIX, __pyx_k_TA_MACDFIX, sizeof(__pyx_k_TA_MACDFIX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAMA, __pyx_k_TA_MAMA, sizeof(__pyx_k_TA_MAMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAVP, __pyx_k_TA_MAVP, sizeof(__pyx_k_TA_MAVP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAX, __pyx_k_TA_MAX, sizeof(__pyx_k_TA_MAX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAXINDEX, __pyx_k_TA_MAXINDEX, sizeof(__pyx_k_TA_MAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MEDPRICE, __pyx_k_TA_MEDPRICE, sizeof(__pyx_k_TA_MEDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MFI, __pyx_k_TA_MFI, sizeof(__pyx_k_TA_MFI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIDPOINT, __pyx_k_TA_MIDPOINT, sizeof(__pyx_k_TA_MIDPOINT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIDPRICE, __pyx_k_TA_MIDPRICE, sizeof(__pyx_k_TA_MIDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIN, __pyx_k_TA_MIN, sizeof(__pyx_k_TA_MIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MININDEX, __pyx_k_TA_MININDEX, sizeof(__pyx_k_TA_MININDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINMAX, __pyx_k_TA_MINMAX, sizeof(__pyx_k_TA_MINMAX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINMAXINDEX, __pyx_k_TA_MINMAXINDEX, sizeof(__pyx_k_TA_MINMAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINUS_DI, __pyx_k_TA_MINUS_DI, sizeof(__pyx_k_TA_MINUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINUS_DM, __pyx_k_TA_MINUS_DM, sizeof(__pyx_k_TA_MINUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MOM, __pyx_k_TA_MOM, sizeof(__pyx_k_TA_MOM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MULT, __pyx_k_TA_MULT, sizeof(__pyx_k_TA_MULT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_NATR, __pyx_k_TA_NATR, sizeof(__pyx_k_TA_NATR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_OBV, __pyx_k_TA_OBV, sizeof(__pyx_k_TA_OBV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_OUTPUT_FLAGS, __pyx_k_TA_OUTPUT_FLAGS, sizeof(__pyx_k_TA_OUTPUT_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PLUS_DI, __pyx_k_TA_PLUS_DI, sizeof(__pyx_k_TA_PLUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PLUS_DM, __pyx_k_TA_PLUS_DM, sizeof(__pyx_k_TA_PLUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PPO, __pyx_k_TA_PPO, sizeof(__pyx_k_TA_PPO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ParamHolderAlloc, __pyx_k_TA_ParamHolderAlloc, sizeof(__pyx_k_TA_ParamHolderAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ParamHolderFree, __pyx_k_TA_ParamHolderFree, sizeof(__pyx_k_TA_ParamHolderFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROC, __pyx_k_TA_ROC, sizeof(__pyx_k_TA_ROC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCP, __pyx_k_TA_ROCP, sizeof(__pyx_k_TA_ROCP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCR, __pyx_k_TA_ROCR, sizeof(__pyx_k_TA_ROCR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCR100, __pyx_k_TA_ROCR100, sizeof(__pyx_k_TA_ROCR100), 0, 0, 1, 1}, - {&__pyx_n_s_TA_RSI, __pyx_k_TA_RSI, sizeof(__pyx_k_TA_RSI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_k_TA_RestoreCandleDefaultSettings, sizeof(__pyx_k_TA_RestoreCandleDefaultSettings), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SAR, __pyx_k_TA_SAR, sizeof(__pyx_k_TA_SAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SAREXT, __pyx_k_TA_SAREXT, sizeof(__pyx_k_TA_SAREXT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SIN, __pyx_k_TA_SIN, sizeof(__pyx_k_TA_SIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SINH, __pyx_k_TA_SINH, sizeof(__pyx_k_TA_SINH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SMA, __pyx_k_TA_SMA, sizeof(__pyx_k_TA_SMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SQRT, __pyx_k_TA_SQRT, sizeof(__pyx_k_TA_SQRT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STDDEV, __pyx_k_TA_STDDEV, sizeof(__pyx_k_TA_STDDEV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCH, __pyx_k_TA_STOCH, sizeof(__pyx_k_TA_STOCH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCHF, __pyx_k_TA_STOCHF, sizeof(__pyx_k_TA_STOCHF), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCHRSI, __pyx_k_TA_STOCHRSI, sizeof(__pyx_k_TA_STOCHRSI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SUB, __pyx_k_TA_SUB, sizeof(__pyx_k_TA_SUB), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SUM, __pyx_k_TA_SUM, sizeof(__pyx_k_TA_SUM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetCandleSettings, __pyx_k_TA_SetCandleSettings, sizeof(__pyx_k_TA_SetCandleSettings), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetCompatibility, __pyx_k_TA_SetCompatibility, sizeof(__pyx_k_TA_SetCompatibility), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetOptInputParamInteger, __pyx_k_TA_SetOptInputParamInteger, sizeof(__pyx_k_TA_SetOptInputParamInteger), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetOptInputParamReal, __pyx_k_TA_SetOptInputParamReal, sizeof(__pyx_k_TA_SetOptInputParamReal), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetUnstablePeriod, __pyx_k_TA_SetUnstablePeriod, sizeof(__pyx_k_TA_SetUnstablePeriod), 0, 0, 1, 1}, - {&__pyx_n_s_TA_Shutdown, __pyx_k_TA_Shutdown, sizeof(__pyx_k_TA_Shutdown), 0, 0, 1, 1}, - {&__pyx_n_s_TA_T3, __pyx_k_TA_T3, sizeof(__pyx_k_TA_T3), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TAN, __pyx_k_TA_TAN, sizeof(__pyx_k_TA_TAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TANH, __pyx_k_TA_TANH, sizeof(__pyx_k_TA_TANH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TEMA, __pyx_k_TA_TEMA, sizeof(__pyx_k_TA_TEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRANGE, __pyx_k_TA_TRANGE, sizeof(__pyx_k_TA_TRANGE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRIMA, __pyx_k_TA_TRIMA, sizeof(__pyx_k_TA_TRIMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRIX, __pyx_k_TA_TRIX, sizeof(__pyx_k_TA_TRIX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TSF, __pyx_k_TA_TSF, sizeof(__pyx_k_TA_TSF), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TYPPRICE, __pyx_k_TA_TYPPRICE, sizeof(__pyx_k_TA_TYPPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ULTOSC, __pyx_k_TA_ULTOSC, sizeof(__pyx_k_TA_ULTOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_VAR, __pyx_k_TA_VAR, sizeof(__pyx_k_TA_VAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WCLPRICE, __pyx_k_TA_WCLPRICE, sizeof(__pyx_k_TA_WCLPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WILLR, __pyx_k_TA_WILLR, sizeof(__pyx_k_TA_WILLR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WMA, __pyx_k_TA_WMA, sizeof(__pyx_k_TA_WMA), 0, 0, 1, 1}, - {&__pyx_n_s_TEMA, __pyx_k_TEMA, sizeof(__pyx_k_TEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TRANGE, __pyx_k_TRANGE, sizeof(__pyx_k_TRANGE), 0, 0, 1, 1}, - {&__pyx_n_s_TRIMA, __pyx_k_TRIMA, sizeof(__pyx_k_TRIMA), 0, 0, 1, 1}, - {&__pyx_n_s_TRIX, __pyx_k_TRIX, sizeof(__pyx_k_TRIX), 0, 0, 1, 1}, - {&__pyx_n_s_TSF, __pyx_k_TSF, sizeof(__pyx_k_TSF), 0, 0, 1, 1}, - {&__pyx_n_s_TYPPRICE, __pyx_k_TYPPRICE, sizeof(__pyx_k_TYPPRICE), 0, 0, 1, 1}, - {&__pyx_kp_s_This_is_a_pythonic_wrapper_arou, __pyx_k_This_is_a_pythonic_wrapper_arou, sizeof(__pyx_k_This_is_a_pythonic_wrapper_arou), 0, 0, 1, 0}, - {&__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_k_Too_many_price_arguments_expecte, sizeof(__pyx_k_Too_many_price_arguments_expecte), 0, 0, 1, 0}, - {&__pyx_kp_s_Triangular_Moving_Average, __pyx_k_Triangular_Moving_Average, sizeof(__pyx_k_Triangular_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s_Triple_Exponential_Moving_Averag, __pyx_k_Triple_Exponential_Moving_Averag, sizeof(__pyx_k_Triple_Exponential_Moving_Averag), 0, 0, 1, 0}, - {&__pyx_kp_s_Triple_Generalized_Double_Expone, __pyx_k_Triple_Generalized_Double_Expone, sizeof(__pyx_k_Triple_Generalized_Double_Expone), 0, 0, 1, 0}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_ULTOSC, __pyx_k_ULTOSC, sizeof(__pyx_k_ULTOSC), 0, 0, 1, 1}, - {&__pyx_kp_s_Unknown_Error, __pyx_k_Unknown_Error, sizeof(__pyx_k_Unknown_Error), 0, 0, 1, 0}, - {&__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR, __pyx_k_Unknown_Error_TA_UNKNOWN_ERR, sizeof(__pyx_k_Unknown_Error_TA_UNKNOWN_ERR), 0, 0, 1, 0}, - {&__pyx_n_s_VAR, __pyx_k_VAR, sizeof(__pyx_k_VAR), 0, 0, 1, 1}, - {&__pyx_kp_s_Values_represent_a_lower_limit, __pyx_k_Values_represent_a_lower_limit, sizeof(__pyx_k_Values_represent_a_lower_limit), 0, 0, 1, 0}, - {&__pyx_kp_s_Values_represent_an_upper_limit, __pyx_k_Values_represent_an_upper_limit, sizeof(__pyx_k_Values_represent_an_upper_limit), 0, 0, 1, 0}, - {&__pyx_n_s_WCLPRICE, __pyx_k_WCLPRICE, sizeof(__pyx_k_WCLPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_WILLR, __pyx_k_WILLR, sizeof(__pyx_k_WILLR), 0, 0, 1, 1}, - {&__pyx_n_s_WMA, __pyx_k_WMA, sizeof(__pyx_k_WMA), 0, 0, 1, 1}, - {&__pyx_kp_s_Weighted_Moving_Average, __pyx_k_Weighted_Moving_Average, sizeof(__pyx_k_Weighted_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, - {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0}, - {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0}, - {&__pyx_n_s__240, __pyx_k__240, sizeof(__pyx_k__240), 0, 0, 1, 1}, - {&__pyx_kp_u__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 1, 0, 0}, - {&__pyx_n_s__503, __pyx_k__503, sizeof(__pyx_k__503), 0, 0, 1, 1}, - {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0}, - {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, - {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, - {&__pyx_n_s_acceleration, __pyx_k_acceleration, sizeof(__pyx_k_acceleration), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationinitlong, __pyx_k_accelerationinitlong, sizeof(__pyx_k_accelerationinitlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationinitshort, __pyx_k_accelerationinitshort, sizeof(__pyx_k_accelerationinitshort), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationlong, __pyx_k_accelerationlong, sizeof(__pyx_k_accelerationlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationmaxlong, __pyx_k_accelerationmaxlong, sizeof(__pyx_k_accelerationmaxlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationmaxshort, __pyx_k_accelerationmaxshort, sizeof(__pyx_k_accelerationmaxshort), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationshort, __pyx_k_accelerationshort, sizeof(__pyx_k_accelerationshort), 0, 0, 1, 1}, - {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, - {&__pyx_kp_s_any_ndarray, __pyx_k_any_ndarray, sizeof(__pyx_k_any_ndarray), 0, 0, 1, 0}, - {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, - {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1}, - {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, - {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1}, - {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, - {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, - {&__pyx_n_s_avgperiod, __pyx_k_avgperiod, sizeof(__pyx_k_avgperiod), 0, 0, 1, 1}, - {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, - {&__pyx_n_s_begidx, __pyx_k_begidx, sizeof(__pyx_k_begidx), 0, 0, 1, 1}, - {&__pyx_n_s_bytes2str, __pyx_k_bytes2str, sizeof(__pyx_k_bytes2str), 0, 0, 1, 1}, - {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, - {&__pyx_n_s_call_function, __pyx_k_call_function, sizeof(__pyx_k_call_function), 0, 0, 1, 1}, - {&__pyx_n_s_check_opt_input_value, __pyx_k_check_opt_input_value, sizeof(__pyx_k_check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, - {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, - {&__pyx_n_s_close_data, __pyx_k_close_data, sizeof(__pyx_k_close_data), 0, 0, 1, 1}, - {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1}, - {&__pyx_n_s_column_stack, __pyx_k_column_stack, sizeof(__pyx_k_column_stack), 0, 0, 1, 1}, - {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1}, - {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, - {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, - {&__pyx_n_s_default_value, __pyx_k_default_value, sizeof(__pyx_k_default_value), 0, 0, 1, 1}, - {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, - {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, - {&__pyx_n_s_display_name, __pyx_k_display_name, sizeof(__pyx_k_display_name), 0, 0, 1, 1}, - {&__pyx_kp_s_display_name_s_group_s, __pyx_k_display_name_s_group_s, sizeof(__pyx_k_display_name_s_group_s), 0, 0, 1, 0}, - {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, - {&__pyx_n_s_docs, __pyx_k_docs, sizeof(__pyx_k_docs), 0, 0, 1, 1}, - {&__pyx_n_s_documentation, __pyx_k_documentation, sizeof(__pyx_k_documentation), 0, 0, 1, 1}, - {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, - {&__pyx_n_s_endidx, __pyx_k_endidx, sizeof(__pyx_k_endidx), 0, 0, 1, 1}, - {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, - {&__pyx_n_s_factor, __pyx_k_factor, sizeof(__pyx_k_factor), 0, 0, 1, 1}, - {&__pyx_n_s_fastd_matype, __pyx_k_fastd_matype, sizeof(__pyx_k_fastd_matype), 0, 0, 1, 1}, - {&__pyx_n_s_fastd_period, __pyx_k_fastd_period, sizeof(__pyx_k_fastd_period), 0, 0, 1, 1}, - {&__pyx_n_s_fastk_period, __pyx_k_fastk_period, sizeof(__pyx_k_fastk_period), 0, 0, 1, 1}, - {&__pyx_n_s_fastlimit, __pyx_k_fastlimit, sizeof(__pyx_k_fastlimit), 0, 0, 1, 1}, - {&__pyx_n_s_fastmatype, __pyx_k_fastmatype, sizeof(__pyx_k_fastmatype), 0, 0, 1, 1}, - {&__pyx_n_s_fastperiod, __pyx_k_fastperiod, sizeof(__pyx_k_fastperiod), 0, 0, 1, 1}, - {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1}, - {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, - {&__pyx_n_s_flags_lookup_dict, __pyx_k_flags_lookup_dict, sizeof(__pyx_k_flags_lookup_dict), 0, 0, 1, 1}, - {&__pyx_n_s_func_args, __pyx_k_func_args, sizeof(__pyx_k_func_args), 0, 0, 1, 1}, - {&__pyx_n_s_func_info, __pyx_k_func_info, sizeof(__pyx_k_func_info), 0, 0, 1, 1}, - {&__pyx_n_s_func_line, __pyx_k_func_line, sizeof(__pyx_k_func_line), 0, 0, 1, 1}, - {&__pyx_n_s_func_object, __pyx_k_func_object, sizeof(__pyx_k_func_object), 0, 0, 1, 1}, - {&__pyx_n_s_function_flags, __pyx_k_function_flags, sizeof(__pyx_k_function_flags), 0, 0, 1, 1}, - {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1}, - {&__pyx_n_s_functions, __pyx_k_functions, sizeof(__pyx_k_functions), 0, 0, 1, 1}, - {&__pyx_n_s_get_defaults_and_docs, __pyx_k_get_defaults_and_docs, sizeof(__pyx_k_get_defaults_and_docs), 0, 0, 1, 1}, - {&__pyx_n_s_get_flags, __pyx_k_get_flags, sizeof(__pyx_k_get_flags), 0, 0, 1, 1}, - {&__pyx_n_s_get_input_arrays, __pyx_k_get_input_arrays, sizeof(__pyx_k_get_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_get_input_names, __pyx_k_get_input_names, sizeof(__pyx_k_get_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_get_opt_input_value, __pyx_k_get_opt_input_value, sizeof(__pyx_k_get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_get_parameters, __pyx_k_get_parameters, sizeof(__pyx_k_get_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1}, - {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1}, - {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, - {&__pyx_n_s_help, __pyx_k_help, sizeof(__pyx_k_help), 0, 0, 1, 1}, - {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1}, - {&__pyx_n_s_high_data, __pyx_k_high_data, sizeof(__pyx_k_high_data), 0, 0, 1, 1}, - {&__pyx_n_s_holder, __pyx_k_holder, sizeof(__pyx_k_holder), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, - {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_import_error, __pyx_k_import_error, sizeof(__pyx_k_import_error), 0, 0, 1, 1}, - {&__pyx_n_s_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 0, 1, 1}, - {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, - {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, - {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, - {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, - {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, - {&__pyx_kp_s_input_array_has_wrong_dimensions, __pyx_k_input_array_has_wrong_dimensions, sizeof(__pyx_k_input_array_has_wrong_dimensions), 0, 0, 1, 0}, - {&__pyx_kp_s_input_array_lengths_are_differen, __pyx_k_input_array_lengths_are_differen, sizeof(__pyx_k_input_array_lengths_are_differen), 0, 0, 1, 0}, - {&__pyx_kp_s_input_array_type_is_not_double, __pyx_k_input_array_type_is_not_double, sizeof(__pyx_k_input_array_type_is_not_double), 0, 0, 1, 0}, - {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1}, - {&__pyx_kp_s_input_arrays_2, __pyx_k_input_arrays_2, sizeof(__pyx_k_input_arrays_2), 0, 0, 1, 0}, - {&__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_k_input_arrays_parameter_missing_r, sizeof(__pyx_k_input_arrays_parameter_missing_r), 0, 0, 1, 0}, - {&__pyx_n_s_input_name, __pyx_k_input_name, sizeof(__pyx_k_input_name), 0, 0, 1, 1}, - {&__pyx_n_s_input_names, __pyx_k_input_names, sizeof(__pyx_k_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_input_price_series_names, __pyx_k_input_price_series_names, sizeof(__pyx_k_input_price_series_names), 0, 0, 1, 1}, - {&__pyx_n_s_input_price_series_names_2, __pyx_k_input_price_series_names_2, sizeof(__pyx_k_input_price_series_names_2), 0, 0, 1, 1}, - {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1}, - {&__pyx_kp_s_integer_values_are_100_0_or_100, __pyx_k_integer_values_are_100_0_or_100, sizeof(__pyx_k_integer_values_are_100_0_or_100), 0, 0, 1, 0}, - {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, - {&__pyx_n_s_is_empty, __pyx_k_is_empty, sizeof(__pyx_k_is_empty), 0, 0, 1, 1}, - {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, - {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, - {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, - {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, - {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, - {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, - {&__pyx_n_s_local, __pyx_k_local, sizeof(__pyx_k_local), 0, 0, 1, 1}, - {&__pyx_n_s_local_2, __pyx_k_local_2, sizeof(__pyx_k_local_2), 0, 0, 1, 1}, - {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, - {&__pyx_n_s_lookback, __pyx_k_lookback, sizeof(__pyx_k_lookback), 0, 0, 1, 1}, - {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1}, - {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1}, - {&__pyx_n_s_low_data, __pyx_k_low_data, sizeof(__pyx_k_low_data), 0, 0, 1, 1}, - {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, - {&__pyx_n_s_matype, __pyx_k_matype, sizeof(__pyx_k_matype), 0, 0, 1, 1}, - {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, - {&__pyx_n_s_max_int, __pyx_k_max_int, sizeof(__pyx_k_max_int), 0, 0, 1, 1}, - {&__pyx_n_s_maximum, __pyx_k_maximum, sizeof(__pyx_k_maximum), 0, 0, 1, 1}, - {&__pyx_n_s_maxperiod, __pyx_k_maxperiod, sizeof(__pyx_k_maxperiod), 0, 0, 1, 1}, - {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, - {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1}, - {&__pyx_n_s_min_int, __pyx_k_min_int, sizeof(__pyx_k_min_int), 0, 0, 1, 1}, - {&__pyx_n_s_minperiod, __pyx_k_minperiod, sizeof(__pyx_k_minperiod), 0, 0, 1, 1}, - {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1}, - {&__pyx_n_s_missing_keys, __pyx_k_missing_keys, sizeof(__pyx_k_missing_keys), 0, 0, 1, 1}, - {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, - {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1}, - {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, - {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, - {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 0, 1, 1}, - {&__pyx_n_s_nbdev, __pyx_k_nbdev, sizeof(__pyx_k_nbdev), 0, 0, 1, 1}, - {&__pyx_n_s_nbdevdn, __pyx_k_nbdevdn, sizeof(__pyx_k_nbdevdn), 0, 0, 1, 1}, - {&__pyx_n_s_nbdevup, __pyx_k_nbdevup, sizeof(__pyx_k_nbdevup), 0, 0, 1, 1}, - {&__pyx_n_s_no_existing_input_arrays, __pyx_k_no_existing_input_arrays, sizeof(__pyx_k_no_existing_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_num_inputs, __pyx_k_num_inputs, sizeof(__pyx_k_num_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_num_opt_inputs, __pyx_k_num_opt_inputs, sizeof(__pyx_k_num_opt_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy_core_multiarray_failed_to, __pyx_k_numpy_core_multiarray_failed_to, sizeof(__pyx_k_numpy_core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy_core_umath_failed_to_impor, __pyx_k_numpy_core_umath_failed_to_impor, sizeof(__pyx_k_numpy_core_umath_failed_to_impor), 0, 0, 1, 0}, - {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, - {&__pyx_n_s_offsetonreverse, __pyx_k_offsetonreverse, sizeof(__pyx_k_offsetonreverse), 0, 0, 1, 1}, - {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, - {&__pyx_n_s_openInterest, __pyx_k_openInterest, sizeof(__pyx_k_openInterest), 0, 0, 1, 1}, - {&__pyx_n_s_open_data, __pyx_k_open_data, sizeof(__pyx_k_open_data), 0, 0, 1, 1}, - {&__pyx_n_s_optIn, __pyx_k_optIn, sizeof(__pyx_k_optIn), 0, 0, 1, 1}, - {&__pyx_n_s_opt_input, __pyx_k_opt_input, sizeof(__pyx_k_opt_input), 0, 0, 1, 1}, - {&__pyx_n_s_opt_input_values, __pyx_k_opt_input_values, sizeof(__pyx_k_opt_input_values), 0, 0, 1, 1}, - {&__pyx_n_s_opt_inputs, __pyx_k_opt_inputs, sizeof(__pyx_k_opt_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_ordereddict, __pyx_k_ordereddict, sizeof(__pyx_k_ordereddict), 0, 0, 1, 1}, - {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1}, - {&__pyx_n_s_outaroondown, __pyx_k_outaroondown, sizeof(__pyx_k_outaroondown), 0, 0, 1, 1}, - {&__pyx_n_s_outaroonup, __pyx_k_outaroonup, sizeof(__pyx_k_outaroonup), 0, 0, 1, 1}, - {&__pyx_n_s_outbegidx, __pyx_k_outbegidx, sizeof(__pyx_k_outbegidx), 0, 0, 1, 1}, - {&__pyx_n_s_outfama, __pyx_k_outfama, sizeof(__pyx_k_outfama), 0, 0, 1, 1}, - {&__pyx_n_s_outfastd, __pyx_k_outfastd, sizeof(__pyx_k_outfastd), 0, 0, 1, 1}, - {&__pyx_n_s_outfastk, __pyx_k_outfastk, sizeof(__pyx_k_outfastk), 0, 0, 1, 1}, - {&__pyx_n_s_outinphase, __pyx_k_outinphase, sizeof(__pyx_k_outinphase), 0, 0, 1, 1}, - {&__pyx_n_s_outinteger, __pyx_k_outinteger, sizeof(__pyx_k_outinteger), 0, 0, 1, 1}, - {&__pyx_n_s_outinteger_data, __pyx_k_outinteger_data, sizeof(__pyx_k_outinteger_data), 0, 0, 1, 1}, - {&__pyx_n_s_outleadsine, __pyx_k_outleadsine, sizeof(__pyx_k_outleadsine), 0, 0, 1, 1}, - {&__pyx_n_s_outmacd, __pyx_k_outmacd, sizeof(__pyx_k_outmacd), 0, 0, 1, 1}, - {&__pyx_n_s_outmacdhist, __pyx_k_outmacdhist, sizeof(__pyx_k_outmacdhist), 0, 0, 1, 1}, - {&__pyx_n_s_outmacdsignal, __pyx_k_outmacdsignal, sizeof(__pyx_k_outmacdsignal), 0, 0, 1, 1}, - {&__pyx_n_s_outmama, __pyx_k_outmama, sizeof(__pyx_k_outmama), 0, 0, 1, 1}, - {&__pyx_n_s_outmax, __pyx_k_outmax, sizeof(__pyx_k_outmax), 0, 0, 1, 1}, - {&__pyx_n_s_outmaxidx, __pyx_k_outmaxidx, sizeof(__pyx_k_outmaxidx), 0, 0, 1, 1}, - {&__pyx_n_s_outmaxidx_data, __pyx_k_outmaxidx_data, sizeof(__pyx_k_outmaxidx_data), 0, 0, 1, 1}, - {&__pyx_n_s_outmin, __pyx_k_outmin, sizeof(__pyx_k_outmin), 0, 0, 1, 1}, - {&__pyx_n_s_outminidx, __pyx_k_outminidx, sizeof(__pyx_k_outminidx), 0, 0, 1, 1}, - {&__pyx_n_s_outminidx_data, __pyx_k_outminidx_data, sizeof(__pyx_k_outminidx_data), 0, 0, 1, 1}, - {&__pyx_n_s_outnbelement, __pyx_k_outnbelement, sizeof(__pyx_k_outnbelement), 0, 0, 1, 1}, - {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, - {&__pyx_n_s_output_flags, __pyx_k_output_flags, sizeof(__pyx_k_output_flags), 0, 0, 1, 1}, - {&__pyx_n_s_output_name, __pyx_k_output_name, sizeof(__pyx_k_output_name), 0, 0, 1, 1}, - {&__pyx_n_s_output_names, __pyx_k_output_names, sizeof(__pyx_k_output_names), 0, 0, 1, 1}, - {&__pyx_n_s_outputs, __pyx_k_outputs, sizeof(__pyx_k_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_outputs_valid, __pyx_k_outputs_valid, sizeof(__pyx_k_outputs_valid), 0, 0, 1, 1}, - {&__pyx_n_s_outquadrature, __pyx_k_outquadrature, sizeof(__pyx_k_outquadrature), 0, 0, 1, 1}, - {&__pyx_n_s_outreal, __pyx_k_outreal, sizeof(__pyx_k_outreal), 0, 0, 1, 1}, - {&__pyx_n_s_outreallowerband, __pyx_k_outreallowerband, sizeof(__pyx_k_outreallowerband), 0, 0, 1, 1}, - {&__pyx_n_s_outrealmiddleband, __pyx_k_outrealmiddleband, sizeof(__pyx_k_outrealmiddleband), 0, 0, 1, 1}, - {&__pyx_n_s_outrealupperband, __pyx_k_outrealupperband, sizeof(__pyx_k_outrealupperband), 0, 0, 1, 1}, - {&__pyx_n_s_outsine, __pyx_k_outsine, sizeof(__pyx_k_outsine), 0, 0, 1, 1}, - {&__pyx_n_s_outslowd, __pyx_k_outslowd, sizeof(__pyx_k_outslowd), 0, 0, 1, 1}, - {&__pyx_n_s_outslowk, __pyx_k_outslowk, sizeof(__pyx_k_outslowk), 0, 0, 1, 1}, - {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1}, - {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1}, - {&__pyx_n_s_param_name, __pyx_k_param_name, sizeof(__pyx_k_param_name), 0, 0, 1, 1}, - {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 0, 1, 1}, - {&__pyx_n_s_penetration, __pyx_k_penetration, sizeof(__pyx_k_penetration), 0, 0, 1, 1}, - {&__pyx_n_s_period, __pyx_k_period, sizeof(__pyx_k_period), 0, 0, 1, 1}, - {&__pyx_n_s_periods, __pyx_k_periods, sizeof(__pyx_k_periods), 0, 0, 1, 1}, - {&__pyx_n_s_periods_data, __pyx_k_periods_data, sizeof(__pyx_k_periods_data), 0, 0, 1, 1}, - {&__pyx_n_s_polars, __pyx_k_polars, sizeof(__pyx_k_polars), 0, 0, 1, 1}, - {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, - {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, - {&__pyx_n_s_price, __pyx_k_price, sizeof(__pyx_k_price), 0, 0, 1, 1}, - {&__pyx_n_s_price0, __pyx_k_price0, sizeof(__pyx_k_price0), 0, 0, 1, 1}, - {&__pyx_n_s_price1, __pyx_k_price1, sizeof(__pyx_k_price1), 0, 0, 1, 1}, - {&__pyx_n_s_price_series, __pyx_k_price_series, sizeof(__pyx_k_price_series), 0, 0, 1, 1}, - {&__pyx_n_s_price_series_name_values, __pyx_k_price_series_name_values, sizeof(__pyx_k_price_series_name_values), 0, 0, 1, 1}, - {&__pyx_n_s_prices, __pyx_k_prices, sizeof(__pyx_k_prices), 0, 0, 1, 1}, - {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1}, - {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_rangetype, __pyx_k_rangetype, sizeof(__pyx_k_rangetype), 0, 0, 1, 1}, - {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1}, - {&__pyx_n_s_real0, __pyx_k_real0, sizeof(__pyx_k_real0), 0, 0, 1, 1}, - {&__pyx_n_s_real0_data, __pyx_k_real0_data, sizeof(__pyx_k_real0_data), 0, 0, 1, 1}, - {&__pyx_n_s_real1, __pyx_k_real1, sizeof(__pyx_k_real1), 0, 0, 1, 1}, - {&__pyx_n_s_real1_data, __pyx_k_real1_data, sizeof(__pyx_k_real1_data), 0, 0, 1, 1}, - {&__pyx_n_s_real_data, __pyx_k_real_data, sizeof(__pyx_k_real_data), 0, 0, 1, 1}, - {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, - {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1}, - {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, - {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, - {&__pyx_n_s_retCode, __pyx_k_retCode, sizeof(__pyx_k_retCode), 0, 0, 1, 1}, - {&__pyx_n_s_ret_code, __pyx_k_ret_code, sizeof(__pyx_k_ret_code), 0, 0, 1, 1}, - {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, - {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, - {&__pyx_kp_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 0}, - {&__pyx_kp_s_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 0, 1, 0}, - {&__pyx_kp_s_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 0, 1, 0}, - {&__pyx_kp_s_s_function_failed_with_error_co, __pyx_k_s_function_failed_with_error_co, sizeof(__pyx_k_s_function_failed_with_error_co), 0, 0, 1, 0}, - {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0}, - {&__pyx_kp_s_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 0, 1, 0}, - {&__pyx_n_s_schema, __pyx_k_schema, sizeof(__pyx_k_schema), 0, 0, 1, 1}, - {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, - {&__pyx_n_s_series, __pyx_k_series, sizeof(__pyx_k_series), 0, 0, 1, 1}, - {&__pyx_n_s_set_function_args, __pyx_k_set_function_args, sizeof(__pyx_k_set_function_args), 0, 0, 1, 1}, - {&__pyx_n_s_set_input_arrays, __pyx_k_set_input_arrays, sizeof(__pyx_k_set_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_set_input_names, __pyx_k_set_input_names, sizeof(__pyx_k_set_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, - {&__pyx_n_s_set_parameters, __pyx_k_set_parameters, sizeof(__pyx_k_set_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_settingtype, __pyx_k_settingtype, sizeof(__pyx_k_settingtype), 0, 0, 1, 1}, - {&__pyx_n_s_signalmatype, __pyx_k_signalmatype, sizeof(__pyx_k_signalmatype), 0, 0, 1, 1}, - {&__pyx_n_s_signalperiod, __pyx_k_signalperiod, sizeof(__pyx_k_signalperiod), 0, 0, 1, 1}, - {&__pyx_n_s_skip_first, __pyx_k_skip_first, sizeof(__pyx_k_skip_first), 0, 0, 1, 1}, - {&__pyx_n_s_slowd_matype, __pyx_k_slowd_matype, sizeof(__pyx_k_slowd_matype), 0, 0, 1, 1}, - {&__pyx_n_s_slowd_period, __pyx_k_slowd_period, sizeof(__pyx_k_slowd_period), 0, 0, 1, 1}, - {&__pyx_n_s_slowk_matype, __pyx_k_slowk_matype, sizeof(__pyx_k_slowk_matype), 0, 0, 1, 1}, - {&__pyx_n_s_slowk_period, __pyx_k_slowk_period, sizeof(__pyx_k_slowk_period), 0, 0, 1, 1}, - {&__pyx_n_s_slowlimit, __pyx_k_slowlimit, sizeof(__pyx_k_slowlimit), 0, 0, 1, 1}, - {&__pyx_n_s_slowmatype, __pyx_k_slowmatype, sizeof(__pyx_k_slowmatype), 0, 0, 1, 1}, - {&__pyx_n_s_slowperiod, __pyx_k_slowperiod, sizeof(__pyx_k_slowperiod), 0, 0, 1, 1}, - {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, - {&__pyx_n_s_startvalue, __pyx_k_startvalue, sizeof(__pyx_k_startvalue), 0, 0, 1, 1}, - {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1}, - {&__pyx_n_s_str2bytes, __pyx_k_str2bytes, sizeof(__pyx_k_str2bytes), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ACOS, __pyx_k_stream_ACOS, sizeof(__pyx_k_stream_ACOS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_AD, __pyx_k_stream_AD, sizeof(__pyx_k_stream_AD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ADD, __pyx_k_stream_ADD, sizeof(__pyx_k_stream_ADD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ADOSC, __pyx_k_stream_ADOSC, sizeof(__pyx_k_stream_ADOSC), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ADX, __pyx_k_stream_ADX, sizeof(__pyx_k_stream_ADX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ADXR, __pyx_k_stream_ADXR, sizeof(__pyx_k_stream_ADXR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_APO, __pyx_k_stream_APO, sizeof(__pyx_k_stream_APO), 0, 0, 1, 1}, - {&__pyx_n_s_stream_AROON, __pyx_k_stream_AROON, sizeof(__pyx_k_stream_AROON), 0, 0, 1, 1}, - {&__pyx_n_s_stream_AROONOSC, __pyx_k_stream_AROONOSC, sizeof(__pyx_k_stream_AROONOSC), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ASIN, __pyx_k_stream_ASIN, sizeof(__pyx_k_stream_ASIN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ATAN, __pyx_k_stream_ATAN, sizeof(__pyx_k_stream_ATAN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ATR, __pyx_k_stream_ATR, sizeof(__pyx_k_stream_ATR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_AVGPRICE, __pyx_k_stream_AVGPRICE, sizeof(__pyx_k_stream_AVGPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_BBANDS, __pyx_k_stream_BBANDS, sizeof(__pyx_k_stream_BBANDS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_BETA, __pyx_k_stream_BETA, sizeof(__pyx_k_stream_BETA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_BOP, __pyx_k_stream_BOP, sizeof(__pyx_k_stream_BOP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CCI, __pyx_k_stream_CCI, sizeof(__pyx_k_stream_CCI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL2CROWS, __pyx_k_stream_CDL2CROWS, sizeof(__pyx_k_stream_CDL2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3BLACKCROWS, __pyx_k_stream_CDL3BLACKCROWS, sizeof(__pyx_k_stream_CDL3BLACKCROWS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3INSIDE, __pyx_k_stream_CDL3INSIDE, sizeof(__pyx_k_stream_CDL3INSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3LINESTRIKE, __pyx_k_stream_CDL3LINESTRIKE, sizeof(__pyx_k_stream_CDL3LINESTRIKE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3OUTSIDE, __pyx_k_stream_CDL3OUTSIDE, sizeof(__pyx_k_stream_CDL3OUTSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_k_stream_CDL3STARSINSOUTH, sizeof(__pyx_k_stream_CDL3STARSINSOUTH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_k_stream_CDL3WHITESOLDIERS, sizeof(__pyx_k_stream_CDL3WHITESOLDIERS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLABANDONEDBABY, __pyx_k_stream_CDLABANDONEDBABY, sizeof(__pyx_k_stream_CDLABANDONEDBABY), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_k_stream_CDLADVANCEBLOCK, sizeof(__pyx_k_stream_CDLADVANCEBLOCK), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLBELTHOLD, __pyx_k_stream_CDLBELTHOLD, sizeof(__pyx_k_stream_CDLBELTHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLBREAKAWAY, __pyx_k_stream_CDLBREAKAWAY, sizeof(__pyx_k_stream_CDLBREAKAWAY), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_k_stream_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_stream_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_k_stream_CDLCONCEALBABYSWALL, sizeof(__pyx_k_stream_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_k_stream_CDLCOUNTERATTACK, sizeof(__pyx_k_stream_CDLCOUNTERATTACK), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_k_stream_CDLDARKCLOUDCOVER, sizeof(__pyx_k_stream_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLDOJI, __pyx_k_stream_CDLDOJI, sizeof(__pyx_k_stream_CDLDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLDOJISTAR, __pyx_k_stream_CDLDOJISTAR, sizeof(__pyx_k_stream_CDLDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_k_stream_CDLDRAGONFLYDOJI, sizeof(__pyx_k_stream_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLENGULFING, __pyx_k_stream_CDLENGULFING, sizeof(__pyx_k_stream_CDLENGULFING), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_k_stream_CDLEVENINGDOJISTAR, sizeof(__pyx_k_stream_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLEVENINGSTAR, __pyx_k_stream_CDLEVENINGSTAR, sizeof(__pyx_k_stream_CDLEVENINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_k_stream_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_stream_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_k_stream_CDLGRAVESTONEDOJI, sizeof(__pyx_k_stream_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHAMMER, __pyx_k_stream_CDLHAMMER, sizeof(__pyx_k_stream_CDLHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHANGINGMAN, __pyx_k_stream_CDLHANGINGMAN, sizeof(__pyx_k_stream_CDLHANGINGMAN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHARAMI, __pyx_k_stream_CDLHARAMI, sizeof(__pyx_k_stream_CDLHARAMI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHARAMICROSS, __pyx_k_stream_CDLHARAMICROSS, sizeof(__pyx_k_stream_CDLHARAMICROSS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHIGHWAVE, __pyx_k_stream_CDLHIGHWAVE, sizeof(__pyx_k_stream_CDLHIGHWAVE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHIKKAKE, __pyx_k_stream_CDLHIKKAKE, sizeof(__pyx_k_stream_CDLHIKKAKE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_k_stream_CDLHIKKAKEMOD, sizeof(__pyx_k_stream_CDLHIKKAKEMOD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_k_stream_CDLHOMINGPIGEON, sizeof(__pyx_k_stream_CDLHOMINGPIGEON), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_k_stream_CDLIDENTICAL3CROWS, sizeof(__pyx_k_stream_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLINNECK, __pyx_k_stream_CDLINNECK, sizeof(__pyx_k_stream_CDLINNECK), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_k_stream_CDLINVERTEDHAMMER, sizeof(__pyx_k_stream_CDLINVERTEDHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLKICKING, __pyx_k_stream_CDLKICKING, sizeof(__pyx_k_stream_CDLKICKING), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_k_stream_CDLKICKINGBYLENGTH, sizeof(__pyx_k_stream_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_k_stream_CDLLADDERBOTTOM, sizeof(__pyx_k_stream_CDLLADDERBOTTOM), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_k_stream_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_stream_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLLONGLINE, __pyx_k_stream_CDLLONGLINE, sizeof(__pyx_k_stream_CDLLONGLINE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLMARUBOZU, __pyx_k_stream_CDLMARUBOZU, sizeof(__pyx_k_stream_CDLMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLMATCHINGLOW, __pyx_k_stream_CDLMATCHINGLOW, sizeof(__pyx_k_stream_CDLMATCHINGLOW), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLMATHOLD, __pyx_k_stream_CDLMATHOLD, sizeof(__pyx_k_stream_CDLMATHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_k_stream_CDLMORNINGDOJISTAR, sizeof(__pyx_k_stream_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLMORNINGSTAR, __pyx_k_stream_CDLMORNINGSTAR, sizeof(__pyx_k_stream_CDLMORNINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLONNECK, __pyx_k_stream_CDLONNECK, sizeof(__pyx_k_stream_CDLONNECK), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLPIERCING, __pyx_k_stream_CDLPIERCING, sizeof(__pyx_k_stream_CDLPIERCING), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_k_stream_CDLRICKSHAWMAN, sizeof(__pyx_k_stream_CDLRICKSHAWMAN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_k_stream_CDLRISEFALL3METHODS, sizeof(__pyx_k_stream_CDLRISEFALL3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_k_stream_CDLSEPARATINGLINES, sizeof(__pyx_k_stream_CDLSEPARATINGLINES), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_k_stream_CDLSHOOTINGSTAR, sizeof(__pyx_k_stream_CDLSHOOTINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSHORTLINE, __pyx_k_stream_CDLSHORTLINE, sizeof(__pyx_k_stream_CDLSHORTLINE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSPINNINGTOP, __pyx_k_stream_CDLSPINNINGTOP, sizeof(__pyx_k_stream_CDLSPINNINGTOP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_k_stream_CDLSTALLEDPATTERN, sizeof(__pyx_k_stream_CDLSTALLEDPATTERN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_k_stream_CDLSTICKSANDWICH, sizeof(__pyx_k_stream_CDLSTICKSANDWICH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLTAKURI, __pyx_k_stream_CDLTAKURI, sizeof(__pyx_k_stream_CDLTAKURI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLTASUKIGAP, __pyx_k_stream_CDLTASUKIGAP, sizeof(__pyx_k_stream_CDLTASUKIGAP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLTHRUSTING, __pyx_k_stream_CDLTHRUSTING, sizeof(__pyx_k_stream_CDLTHRUSTING), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLTRISTAR, __pyx_k_stream_CDLTRISTAR, sizeof(__pyx_k_stream_CDLTRISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_k_stream_CDLUNIQUE3RIVER, sizeof(__pyx_k_stream_CDLUNIQUE3RIVER), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_k_stream_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_stream_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_k_stream_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_stream_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CEIL, __pyx_k_stream_CEIL, sizeof(__pyx_k_stream_CEIL), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CMO, __pyx_k_stream_CMO, sizeof(__pyx_k_stream_CMO), 0, 0, 1, 1}, - {&__pyx_n_s_stream_CORREL, __pyx_k_stream_CORREL, sizeof(__pyx_k_stream_CORREL), 0, 0, 1, 1}, - {&__pyx_n_s_stream_COS, __pyx_k_stream_COS, sizeof(__pyx_k_stream_COS), 0, 0, 1, 1}, - {&__pyx_n_s_stream_COSH, __pyx_k_stream_COSH, sizeof(__pyx_k_stream_COSH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_DEMA, __pyx_k_stream_DEMA, sizeof(__pyx_k_stream_DEMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_DIV, __pyx_k_stream_DIV, sizeof(__pyx_k_stream_DIV), 0, 0, 1, 1}, - {&__pyx_n_s_stream_DX, __pyx_k_stream_DX, sizeof(__pyx_k_stream_DX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_EMA, __pyx_k_stream_EMA, sizeof(__pyx_k_stream_EMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_EXP, __pyx_k_stream_EXP, sizeof(__pyx_k_stream_EXP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_FLOOR, __pyx_k_stream_FLOOR, sizeof(__pyx_k_stream_FLOOR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_DCPERIOD, __pyx_k_stream_HT_DCPERIOD, sizeof(__pyx_k_stream_HT_DCPERIOD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_DCPHASE, __pyx_k_stream_HT_DCPHASE, sizeof(__pyx_k_stream_HT_DCPHASE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_PHASOR, __pyx_k_stream_HT_PHASOR, sizeof(__pyx_k_stream_HT_PHASOR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_SINE, __pyx_k_stream_HT_SINE, sizeof(__pyx_k_stream_HT_SINE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_TRENDLINE, __pyx_k_stream_HT_TRENDLINE, sizeof(__pyx_k_stream_HT_TRENDLINE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_HT_TRENDMODE, __pyx_k_stream_HT_TRENDMODE, sizeof(__pyx_k_stream_HT_TRENDMODE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_KAMA, __pyx_k_stream_KAMA, sizeof(__pyx_k_stream_KAMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LINEARREG, __pyx_k_stream_LINEARREG, sizeof(__pyx_k_stream_LINEARREG), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LINEARREG_ANGLE, __pyx_k_stream_LINEARREG_ANGLE, sizeof(__pyx_k_stream_LINEARREG_ANGLE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_k_stream_LINEARREG_INTERCEPT, sizeof(__pyx_k_stream_LINEARREG_INTERCEPT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LINEARREG_SLOPE, __pyx_k_stream_LINEARREG_SLOPE, sizeof(__pyx_k_stream_LINEARREG_SLOPE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LN, __pyx_k_stream_LN, sizeof(__pyx_k_stream_LN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_LOG10, __pyx_k_stream_LOG10, sizeof(__pyx_k_stream_LOG10), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MA, __pyx_k_stream_MA, sizeof(__pyx_k_stream_MA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MACD, __pyx_k_stream_MACD, sizeof(__pyx_k_stream_MACD), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MACDEXT, __pyx_k_stream_MACDEXT, sizeof(__pyx_k_stream_MACDEXT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MACDFIX, __pyx_k_stream_MACDFIX, sizeof(__pyx_k_stream_MACDFIX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MAMA, __pyx_k_stream_MAMA, sizeof(__pyx_k_stream_MAMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MAVP, __pyx_k_stream_MAVP, sizeof(__pyx_k_stream_MAVP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MAX, __pyx_k_stream_MAX, sizeof(__pyx_k_stream_MAX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MAXINDEX, __pyx_k_stream_MAXINDEX, sizeof(__pyx_k_stream_MAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MEDPRICE, __pyx_k_stream_MEDPRICE, sizeof(__pyx_k_stream_MEDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MFI, __pyx_k_stream_MFI, sizeof(__pyx_k_stream_MFI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MIDPOINT, __pyx_k_stream_MIDPOINT, sizeof(__pyx_k_stream_MIDPOINT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MIDPRICE, __pyx_k_stream_MIDPRICE, sizeof(__pyx_k_stream_MIDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MIN, __pyx_k_stream_MIN, sizeof(__pyx_k_stream_MIN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MININDEX, __pyx_k_stream_MININDEX, sizeof(__pyx_k_stream_MININDEX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MINMAX, __pyx_k_stream_MINMAX, sizeof(__pyx_k_stream_MINMAX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MINMAXINDEX, __pyx_k_stream_MINMAXINDEX, sizeof(__pyx_k_stream_MINMAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MINUS_DI, __pyx_k_stream_MINUS_DI, sizeof(__pyx_k_stream_MINUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MINUS_DM, __pyx_k_stream_MINUS_DM, sizeof(__pyx_k_stream_MINUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MOM, __pyx_k_stream_MOM, sizeof(__pyx_k_stream_MOM), 0, 0, 1, 1}, - {&__pyx_n_s_stream_MULT, __pyx_k_stream_MULT, sizeof(__pyx_k_stream_MULT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_NATR, __pyx_k_stream_NATR, sizeof(__pyx_k_stream_NATR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_OBV, __pyx_k_stream_OBV, sizeof(__pyx_k_stream_OBV), 0, 0, 1, 1}, - {&__pyx_n_s_stream_PLUS_DI, __pyx_k_stream_PLUS_DI, sizeof(__pyx_k_stream_PLUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_PLUS_DM, __pyx_k_stream_PLUS_DM, sizeof(__pyx_k_stream_PLUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_stream_PPO, __pyx_k_stream_PPO, sizeof(__pyx_k_stream_PPO), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ROC, __pyx_k_stream_ROC, sizeof(__pyx_k_stream_ROC), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ROCP, __pyx_k_stream_ROCP, sizeof(__pyx_k_stream_ROCP), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ROCR, __pyx_k_stream_ROCR, sizeof(__pyx_k_stream_ROCR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ROCR100, __pyx_k_stream_ROCR100, sizeof(__pyx_k_stream_ROCR100), 0, 0, 1, 1}, - {&__pyx_n_s_stream_RSI, __pyx_k_stream_RSI, sizeof(__pyx_k_stream_RSI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SAR, __pyx_k_stream_SAR, sizeof(__pyx_k_stream_SAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SAREXT, __pyx_k_stream_SAREXT, sizeof(__pyx_k_stream_SAREXT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SIN, __pyx_k_stream_SIN, sizeof(__pyx_k_stream_SIN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SINH, __pyx_k_stream_SINH, sizeof(__pyx_k_stream_SINH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SMA, __pyx_k_stream_SMA, sizeof(__pyx_k_stream_SMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SQRT, __pyx_k_stream_SQRT, sizeof(__pyx_k_stream_SQRT), 0, 0, 1, 1}, - {&__pyx_n_s_stream_STDDEV, __pyx_k_stream_STDDEV, sizeof(__pyx_k_stream_STDDEV), 0, 0, 1, 1}, - {&__pyx_n_s_stream_STOCH, __pyx_k_stream_STOCH, sizeof(__pyx_k_stream_STOCH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_STOCHF, __pyx_k_stream_STOCHF, sizeof(__pyx_k_stream_STOCHF), 0, 0, 1, 1}, - {&__pyx_n_s_stream_STOCHRSI, __pyx_k_stream_STOCHRSI, sizeof(__pyx_k_stream_STOCHRSI), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SUB, __pyx_k_stream_SUB, sizeof(__pyx_k_stream_SUB), 0, 0, 1, 1}, - {&__pyx_n_s_stream_SUM, __pyx_k_stream_SUM, sizeof(__pyx_k_stream_SUM), 0, 0, 1, 1}, - {&__pyx_n_s_stream_T3, __pyx_k_stream_T3, sizeof(__pyx_k_stream_T3), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TAN, __pyx_k_stream_TAN, sizeof(__pyx_k_stream_TAN), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TANH, __pyx_k_stream_TANH, sizeof(__pyx_k_stream_TANH), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TEMA, __pyx_k_stream_TEMA, sizeof(__pyx_k_stream_TEMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TRANGE, __pyx_k_stream_TRANGE, sizeof(__pyx_k_stream_TRANGE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TRIMA, __pyx_k_stream_TRIMA, sizeof(__pyx_k_stream_TRIMA), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TRIX, __pyx_k_stream_TRIX, sizeof(__pyx_k_stream_TRIX), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TSF, __pyx_k_stream_TSF, sizeof(__pyx_k_stream_TSF), 0, 0, 1, 1}, - {&__pyx_n_s_stream_TYPPRICE, __pyx_k_stream_TYPPRICE, sizeof(__pyx_k_stream_TYPPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_ULTOSC, __pyx_k_stream_ULTOSC, sizeof(__pyx_k_stream_ULTOSC), 0, 0, 1, 1}, - {&__pyx_n_s_stream_VAR, __pyx_k_stream_VAR, sizeof(__pyx_k_stream_VAR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_WCLPRICE, __pyx_k_stream_WCLPRICE, sizeof(__pyx_k_stream_WCLPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_stream_WILLR, __pyx_k_stream_WILLR, sizeof(__pyx_k_stream_WILLR), 0, 0, 1, 1}, - {&__pyx_n_s_stream_WMA, __pyx_k_stream_WMA, sizeof(__pyx_k_stream_WMA), 0, 0, 1, 1}, - {&__pyx_kp_s_stream__s, __pyx_k_stream__s, sizeof(__pyx_k_stream__s), 0, 0, 1, 0}, - {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, - {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, - {&__pyx_n_s_ta_check_success, __pyx_k_ta_check_success, sizeof(__pyx_k_ta_check_success), 0, 0, 1, 1}, - {&__pyx_n_s_ta_func_unst_ids, __pyx_k_ta_func_unst_ids, sizeof(__pyx_k_ta_func_unst_ids), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getFuncInfo, __pyx_k_ta_getFuncInfo, sizeof(__pyx_k_ta_getFuncInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getFuncTable, __pyx_k_ta_getFuncTable, sizeof(__pyx_k_ta_getFuncTable), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getGroupTable, __pyx_k_ta_getGroupTable, sizeof(__pyx_k_ta_getGroupTable), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getInputParameterInfo, __pyx_k_ta_getInputParameterInfo, sizeof(__pyx_k_ta_getInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getOptInputParameterInfo, __pyx_k_ta_getOptInputParameterInfo, sizeof(__pyx_k_ta_getOptInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getOutputParameterInfo, __pyx_k_ta_getOutputParameterInfo, sizeof(__pyx_k_ta_getOutputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_get_compatibility, __pyx_k_ta_get_compatibility, sizeof(__pyx_k_ta_get_compatibility), 0, 0, 1, 1}, - {&__pyx_n_s_ta_get_unstable_period, __pyx_k_ta_get_unstable_period, sizeof(__pyx_k_ta_get_unstable_period), 0, 0, 1, 1}, - {&__pyx_n_s_ta_initialize, __pyx_k_ta_initialize, sizeof(__pyx_k_ta_initialize), 0, 0, 1, 1}, - {&__pyx_n_s_ta_restore_candle_default_setti, __pyx_k_ta_restore_candle_default_setti, sizeof(__pyx_k_ta_restore_candle_default_setti), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_candle_settings, __pyx_k_ta_set_candle_settings, sizeof(__pyx_k_ta_set_candle_settings), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_compatibility, __pyx_k_ta_set_compatibility, sizeof(__pyx_k_ta_set_compatibility), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_unstable_period, __pyx_k_ta_set_unstable_period, sizeof(__pyx_k_ta_set_unstable_period), 0, 0, 1, 1}, - {&__pyx_n_s_ta_shutdown, __pyx_k_ta_shutdown, sizeof(__pyx_k_ta_shutdown), 0, 0, 1, 1}, - {&__pyx_n_s_ta_version, __pyx_k_ta_version, sizeof(__pyx_k_ta_version), 0, 0, 1, 1}, - {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1}, - {&__pyx_kp_s_talib__abstract_pxi, __pyx_k_talib__abstract_pxi, sizeof(__pyx_k_talib__abstract_pxi), 0, 0, 1, 0}, - {&__pyx_kp_s_talib__common_pxi, __pyx_k_talib__common_pxi, sizeof(__pyx_k_talib__common_pxi), 0, 0, 1, 0}, - {&__pyx_kp_s_talib__func_pxi, __pyx_k_talib__func_pxi, sizeof(__pyx_k_talib__func_pxi), 0, 0, 1, 0}, - {&__pyx_kp_s_talib__stream_pxi, __pyx_k_talib__stream_pxi, sizeof(__pyx_k_talib__stream_pxi), 0, 0, 1, 0}, - {&__pyx_n_s_talib__ta_lib, __pyx_k_talib__ta_lib, sizeof(__pyx_k_talib__ta_lib), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1}, - {&__pyx_n_s_timeStamp, __pyx_k_timeStamp, sizeof(__pyx_k_timeStamp), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod, __pyx_k_timeperiod, sizeof(__pyx_k_timeperiod), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod1, __pyx_k_timeperiod1, sizeof(__pyx_k_timeperiod1), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod2, __pyx_k_timeperiod2, sizeof(__pyx_k_timeperiod2), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod3, __pyx_k_timeperiod3, sizeof(__pyx_k_timeperiod3), 0, 0, 1, 1}, - {&__pyx_n_s_to_numpy, __pyx_k_to_numpy, sizeof(__pyx_k_to_numpy), 0, 0, 1, 1}, - {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1}, - {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1}, - {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1}, - {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, - {&__pyx_n_s_update_info, __pyx_k_update_info, sizeof(__pyx_k_update_info), 0, 0, 1, 1}, - {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1}, - {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, - {&__pyx_n_s_value_range, __pyx_k_value_range, sizeof(__pyx_k_value_range), 0, 0, 1, 1}, - {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, - {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, - {&__pyx_n_s_vfactor, __pyx_k_vfactor, sizeof(__pyx_k_vfactor), 0, 0, 1, 1}, - {&__pyx_n_s_volume, __pyx_k_volume, sizeof(__pyx_k_volume), 0, 0, 1, 1}, - {&__pyx_n_s_volume_data, __pyx_k_volume_data, sizeof(__pyx_k_volume_data), 0, 0, 1, 1}, - {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - return __Pyx_InitStrings(__pyx_string_tab); -} -/* #### Code section: cached_builtins ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 60, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 82, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 8, __pyx_L1_error) - __pyx_builtin_NameError = __Pyx_GetBuiltinName(__pyx_n_s_NameError); if (!__pyx_builtin_NameError) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 130, __pyx_L1_error) - #if PY_MAJOR_VERSION >= 3 - __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) - #else - __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) - #endif - __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 436, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 440, __pyx_L1_error) - __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_n_s_min); if (!__pyx_builtin_min) __PYX_ERR(1, 598, __pyx_L1_error) - __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(1, 599, __pyx_L1_error) - return 0; - __pyx_L1_error:; - return -1; -} -/* #### Code section: cached_constants ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); - - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy_core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(2, 984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); - - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy_core_umath_failed_to_impor); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(2, 990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); - - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_type_is_not_double); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(3, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); - - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_wrong_dimensions); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(3, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); - - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_input_array_lengths_are_differen); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(3, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); - - __pyx_tuple__8 = PyTuple_Pack(2, __pyx_n_s_real, __pyx_n_s_price); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); - - __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_s_function_name, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_check_success, 6, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 6, __pyx_L1_error) - - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); - __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_initialize, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 50, __pyx_L1_error) - - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_shutdown, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 55, __pyx_L1_error) - - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_tuple__19 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); - - __pyx_tuple__20 = PyTuple_Pack(1, __pyx_int_9); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); - - __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_init, 63, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 63, __pyx_L1_error) - - __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_getitem, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 76, __pyx_L1_error) - - __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_ret_code, __pyx_n_s_id); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__25); - __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_unstable_period, 90, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 90, __pyx_L1_error) - - __pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_id); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__27); - __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_unstable_period, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 96, __pyx_L1_error) - - __pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__29); - __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_compatibility, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 102, __pyx_L1_error) - - __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__31); - __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_compatibility, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 107, __pyx_L1_error) - - __pyx_tuple__33 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__33); - __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_tuple__34 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__34); - __Pyx_GIVEREF(__pyx_tuple__34); - - __pyx_tuple__35 = PyTuple_Pack(1, __pyx_int_12); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__35); - __Pyx_GIVEREF(__pyx_tuple__35); - - __pyx_tuple__36 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__36); - __Pyx_GIVEREF(__pyx_tuple__36); - __pyx_tuple__37 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__37); - __Pyx_GIVEREF(__pyx_tuple__37); - - __pyx_tuple__38 = PyTuple_Pack(1, __pyx_int_3); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__38); - __Pyx_GIVEREF(__pyx_tuple__38); - - __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_settingtype, __pyx_n_s_rangetype, __pyx_n_s_avgperiod, __pyx_n_s_factor, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__39); - __Pyx_GIVEREF(__pyx_tuple__39); - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_candle_settings, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 124, __pyx_L1_error) - - __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_settingtype, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__41); - __Pyx_GIVEREF(__pyx_tuple__41); - __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_restore_candle_default_setti, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 129, __pyx_L1_error) - - __pyx_tuple__44 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__44); - __Pyx_GIVEREF(__pyx_tuple__44); - __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ACOS, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(3, 142, __pyx_L1_error) - - __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__46); - __Pyx_GIVEREF(__pyx_tuple__46); - __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AD, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(3, 171, __pyx_L1_error) - - __pyx_tuple__48 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__48); - __Pyx_GIVEREF(__pyx_tuple__48); - __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADD, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(3, 203, __pyx_L1_error) - - __pyx_tuple__50 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__50); - __Pyx_GIVEREF(__pyx_tuple__50); - __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADOSC, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(3, 234, __pyx_L1_error) - - __pyx_tuple__52 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__52); - __Pyx_GIVEREF(__pyx_tuple__52); - __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADX, 269, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(3, 269, __pyx_L1_error) - - __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADXR, 302, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(3, 302, __pyx_L1_error) - - __pyx_tuple__55 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__55); - __Pyx_GIVEREF(__pyx_tuple__55); - __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_APO, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(3, 335, __pyx_L1_error) - - __pyx_tuple__57 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__57); - __Pyx_GIVEREF(__pyx_tuple__57); - __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROON, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(3, 368, __pyx_L1_error) - - __pyx_tuple__59 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__59); - __Pyx_GIVEREF(__pyx_tuple__59); - __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(3, 403, __pyx_L1_error) - - __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ASIN, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(3, 435, __pyx_L1_error) - - __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATAN, 464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(3, 464, __pyx_L1_error) - - __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(3, 493, __pyx_L1_error) - - __pyx_tuple__64 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__64); - __Pyx_GIVEREF(__pyx_tuple__64); - __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AVGPRICE, 526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(3, 526, __pyx_L1_error) - - __pyx_tuple__66 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__66); - __Pyx_GIVEREF(__pyx_tuple__66); - __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(3, 558, __pyx_L1_error) - - __pyx_tuple__68 = PyTuple_Pack(11, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__68); - __Pyx_GIVEREF(__pyx_tuple__68); - __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BETA, 598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(3, 598, __pyx_L1_error) - - __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BOP, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(3, 631, __pyx_L1_error) - - __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(3, 663, __pyx_L1_error) - - __pyx_tuple__72 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__72); - __Pyx_GIVEREF(__pyx_tuple__72); - __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 696, __pyx_L1_error) - - __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3BLACKCROWS, 728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 728, __pyx_L1_error) - - __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 760, __pyx_L1_error) - - __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(3, 792, __pyx_L1_error) - - __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 824, __pyx_L1_error) - - __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3STARSINSOUTH, 856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 856, __pyx_L1_error) - - __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 888, __pyx_L1_error) - - __pyx_tuple__80 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__80); - __Pyx_GIVEREF(__pyx_tuple__80); - __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 920, __pyx_L1_error) - - __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 954, __pyx_L1_error) - - __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 986, __pyx_L1_error) - - __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(3, 1018, __pyx_L1_error) - - __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 1050, __pyx_L1_error) - - __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 1082, __pyx_L1_error) - - __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1114, __pyx_L1_error) - - __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 1146, __pyx_L1_error) - - __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1180, __pyx_L1_error) - - __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 1212, __pyx_L1_error) - - __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1244, __pyx_L1_error) - - __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 1276, __pyx_L1_error) - - __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(3, 1308, __pyx_L1_error) - - __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 1342, __pyx_L1_error) - - __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(3, 1376, __pyx_L1_error) - - __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 1408, __pyx_L1_error) - - __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(3, 1440, __pyx_L1_error) - - __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(3, 1472, __pyx_L1_error) - - __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(3, 1504, __pyx_L1_error) - - __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(3, 1536, __pyx_L1_error) - - __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 1568, __pyx_L1_error) - - __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 1600, __pyx_L1_error) - - __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(3, 1632, __pyx_L1_error) - - __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(3, 1664, __pyx_L1_error) - - __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(3, 1696, __pyx_L1_error) - - __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(3, 1728, __pyx_L1_error) - - __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(3, 1760, __pyx_L1_error) - - __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 1792, __pyx_L1_error) - - __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(3, 1824, __pyx_L1_error) - - __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 1856, __pyx_L1_error) - - __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(3, 1888, __pyx_L1_error) - - __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 1920, __pyx_L1_error) - - __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMARUBOZU, 1952, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(3, 1952, __pyx_L1_error) - - __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATCHINGLOW, 1984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(3, 1984, __pyx_L1_error) - - __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2016, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 2016, __pyx_L1_error) - - __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(3, 2050, __pyx_L1_error) - - __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(3, 2084, __pyx_L1_error) - - __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 2118, __pyx_L1_error) - - __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(3, 2150, __pyx_L1_error) - - __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 2182, __pyx_L1_error) - - __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRISEFALL3METHODS, 2214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(3, 2214, __pyx_L1_error) - - __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSEPARATINGLINES, 2246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 2246, __pyx_L1_error) - - __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHOOTINGSTAR, 2278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(3, 2278, __pyx_L1_error) - - __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHORTLINE, 2310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(3, 2310, __pyx_L1_error) - - __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSPINNINGTOP, 2342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 2342, __pyx_L1_error) - - __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTALLEDPATTERN, 2374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 2374, __pyx_L1_error) - - __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 2406, __pyx_L1_error) - - __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 2438, __pyx_L1_error) - - __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2470, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 2470, __pyx_L1_error) - - __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 2502, __pyx_L1_error) - - __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 2534, __pyx_L1_error) - - __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 2566, __pyx_L1_error) - - __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 2598, __pyx_L1_error) - - __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 2630, __pyx_L1_error) - - __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 2662, __pyx_L1_error) - - __pyx_tuple__136 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__136); - __Pyx_GIVEREF(__pyx_tuple__136); - __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CMO, 2691, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 2691, __pyx_L1_error) - - __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CORREL, 2722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(3, 2722, __pyx_L1_error) - - __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COS, 2755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(3, 2755, __pyx_L1_error) - - __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COSH, 2784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(3, 2784, __pyx_L1_error) - - __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(3, 2813, __pyx_L1_error) - - __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DIV, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(3, 2844, __pyx_L1_error) - - __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DX, 2875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(3, 2875, __pyx_L1_error) - - __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EMA, 2908, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(3, 2908, __pyx_L1_error) - - __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 2939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(3, 2939, __pyx_L1_error) - - __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_FLOOR, 2968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(3, 2968, __pyx_L1_error) - - __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPERIOD, 2997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(3, 2997, __pyx_L1_error) - - __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPHASE, 3026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(3, 3026, __pyx_L1_error) - - __pyx_tuple__149 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__149); - __Pyx_GIVEREF(__pyx_tuple__149); - __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_PHASOR, 3055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(3, 3055, __pyx_L1_error) - - __pyx_tuple__151 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__151); - __Pyx_GIVEREF(__pyx_tuple__151); - __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_SINE, 3087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(3, 3087, __pyx_L1_error) - - __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDLINE, 3119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(3, 3119, __pyx_L1_error) - - __pyx_tuple__154 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__154); - __Pyx_GIVEREF(__pyx_tuple__154); - __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDMODE, 3148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(3, 3148, __pyx_L1_error) - - __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_KAMA, 3177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(3, 3177, __pyx_L1_error) - - __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG, 3208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(3, 3208, __pyx_L1_error) - - __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_ANGLE, 3239, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(3, 3239, __pyx_L1_error) - - __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_INTERCEPT, 3270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(3, 3270, __pyx_L1_error) - - __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_SLOPE, 3301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(3, 3301, __pyx_L1_error) - - __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LN, 3332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(3, 3332, __pyx_L1_error) - - __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LOG10, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(3, 3361, __pyx_L1_error) - - __pyx_tuple__163 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__163); - __Pyx_GIVEREF(__pyx_tuple__163); - __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(3, 3390, __pyx_L1_error) - - __pyx_tuple__165 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__165); - __Pyx_GIVEREF(__pyx_tuple__165); - __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACD, 3422, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(3, 3422, __pyx_L1_error) - - __pyx_tuple__167 = PyTuple_Pack(17, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__167); - __Pyx_GIVEREF(__pyx_tuple__167); - __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDEXT, 3461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(3, 3461, __pyx_L1_error) - - __pyx_tuple__169 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__169); - __Pyx_GIVEREF(__pyx_tuple__169); - __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(3, 3503, __pyx_L1_error) - - __pyx_tuple__171 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__171); - __Pyx_GIVEREF(__pyx_tuple__171); - __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAMA, 3540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(3, 3540, __pyx_L1_error) - - __pyx_tuple__173 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__173); - __Pyx_GIVEREF(__pyx_tuple__173); - __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAVP, 3575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(3, 3575, __pyx_L1_error) - - __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAX, 3610, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(3, 3610, __pyx_L1_error) - - __pyx_tuple__176 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger, __pyx_n_s_outinteger_data, __pyx_n_s_i); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__176); - __Pyx_GIVEREF(__pyx_tuple__176); - __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(3, 3641, __pyx_L1_error) - - __pyx_tuple__178 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__178); - __Pyx_GIVEREF(__pyx_tuple__178); - __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3675, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(3, 3675, __pyx_L1_error) - - __pyx_tuple__180 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__180); - __Pyx_GIVEREF(__pyx_tuple__180); - __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(3, 3705, __pyx_L1_error) - - __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPOINT, 3739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(3, 3739, __pyx_L1_error) - - __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(3, 3770, __pyx_L1_error) - - __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIN, 3802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(3, 3802, __pyx_L1_error) - - __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3833, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(3, 3833, __pyx_L1_error) - - __pyx_tuple__186 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__186); - __Pyx_GIVEREF(__pyx_tuple__186); - __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(3, 3867, __pyx_L1_error) - - __pyx_tuple__188 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx, __pyx_n_s_outminidx_data, __pyx_n_s_i, __pyx_n_s_outmaxidx_data); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__188); - __Pyx_GIVEREF(__pyx_tuple__188); - __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(3, 3901, __pyx_L1_error) - - __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DI, 3941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(3, 3941, __pyx_L1_error) - - __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DM, 3974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(3, 3974, __pyx_L1_error) - - __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MOM, 4006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(3, 4006, __pyx_L1_error) - - __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MULT, 4037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(3, 4037, __pyx_L1_error) - - __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 4068, __pyx_L1_error) - - __pyx_tuple__195 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__195); - __Pyx_GIVEREF(__pyx_tuple__195); - __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_OBV, 4101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 4101, __pyx_L1_error) - - __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DI, 4132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 4132, __pyx_L1_error) - - __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DM, 4165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 4165, __pyx_L1_error) - - __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PPO, 4197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 4197, __pyx_L1_error) - - __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROC, 4230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(3, 4230, __pyx_L1_error) - - __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCP, 4261, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 4261, __pyx_L1_error) - - __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR, 4292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 4292, __pyx_L1_error) - - __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR100, 4323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 4323, __pyx_L1_error) - - __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_RSI, 4354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 4354, __pyx_L1_error) - - __pyx_tuple__205 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__205); - __Pyx_GIVEREF(__pyx_tuple__205); - __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 4385, __pyx_L1_error) - - __pyx_tuple__207 = PyTuple_Pack(18, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__207); - __Pyx_GIVEREF(__pyx_tuple__207); - __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 4418, __pyx_L1_error) - - __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SIN, 4457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 4457, __pyx_L1_error) - - __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SINH, 4486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(3, 4486, __pyx_L1_error) - - __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SMA, 4515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 4515, __pyx_L1_error) - - __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SQRT, 4546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(3, 4546, __pyx_L1_error) - - __pyx_tuple__213 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__213); - __Pyx_GIVEREF(__pyx_tuple__213); - __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STDDEV, 4575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 4575, __pyx_L1_error) - - __pyx_tuple__215 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__215); - __Pyx_GIVEREF(__pyx_tuple__215); - __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCH, 4607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 4607, __pyx_L1_error) - - __pyx_tuple__217 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__217); - __Pyx_GIVEREF(__pyx_tuple__217); - __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHF, 4647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(3, 4647, __pyx_L1_error) - - __pyx_tuple__219 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__219); - __Pyx_GIVEREF(__pyx_tuple__219); - __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHRSI, 4685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(3, 4685, __pyx_L1_error) - - __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUB, 4722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 4722, __pyx_L1_error) - - __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4753, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(3, 4753, __pyx_L1_error) - - __pyx_tuple__223 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__223); - __Pyx_GIVEREF(__pyx_tuple__223); - __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_T3, 4784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(3, 4784, __pyx_L1_error) - - __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TAN, 4816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 4816, __pyx_L1_error) - - __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TANH, 4845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 4845, __pyx_L1_error) - - __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TEMA, 4874, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 4874, __pyx_L1_error) - - __pyx_tuple__228 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__228); - __Pyx_GIVEREF(__pyx_tuple__228); - __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRANGE, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(3, 4905, __pyx_L1_error) - - __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIMA, 4936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(3, 4936, __pyx_L1_error) - - __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIX, 4967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(3, 4967, __pyx_L1_error) - - __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TSF, 4998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(3, 4998, __pyx_L1_error) - - __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TYPPRICE, 5029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(3, 5029, __pyx_L1_error) - - __pyx_tuple__234 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__234); - __Pyx_GIVEREF(__pyx_tuple__234); - __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5060, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(3, 5060, __pyx_L1_error) - - __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(3, 5095, __pyx_L1_error) - - __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(3, 5127, __pyx_L1_error) - - __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WILLR, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(3, 5158, __pyx_L1_error) - - __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WMA, 5191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(3, 5191, __pyx_L1_error) - - __pyx_tuple__241 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__241); - __Pyx_GIVEREF(__pyx_tuple__241); - __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 74, __pyx_L1_error) - - __pyx_tuple__243 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__243); - __Pyx_GIVEREF(__pyx_tuple__243); - __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 77, __pyx_L1_error) - - __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(1, 82, __pyx_L1_error) - - __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 85, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(1, 85, __pyx_L1_error) - - __pyx_tuple__247 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__247); - __Pyx_GIVEREF(__pyx_tuple__247); - __pyx_tuple__248 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__248); - __Pyx_GIVEREF(__pyx_tuple__248); - - __pyx_tuple__249 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_function_name, __pyx_n_s_func_object, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__249); - __Pyx_GIVEREF(__pyx_tuple__249); - __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 117, __pyx_L1_error) - - __pyx_tuple__251 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_i, __pyx_n_s_info, __pyx_n_s_input_name, __pyx_n_s_param_name, __pyx_n_s_output_name); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__251); - __Pyx_GIVEREF(__pyx_tuple__251); - __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_local_2, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 130, __pyx_L1_error) - - __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_info, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(1, 172, __pyx_L1_error) - - __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_function_flags, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 179, __pyx_L1_error) - - __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_flags, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(1, 186, __pyx_L1_error) - - __pyx_tuple__256 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(1, 193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__256); - __Pyx_GIVEREF(__pyx_tuple__256); - __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_names, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 193, __pyx_L1_error) - - __pyx_tuple__258 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_input_names, __pyx_n_s_local, __pyx_n_s_input_name, __pyx_n_s_price_series); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(1, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__258); - __Pyx_GIVEREF(__pyx_tuple__258); - __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_names, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(1, 204, __pyx_L1_error) - - __pyx_tuple__260 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_local); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__260); - __Pyx_GIVEREF(__pyx_tuple__260); - __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_arrays, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(1, 216, __pyx_L1_error) - - __pyx_tuple__262 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_input_arrays, __pyx_n_s_local, __pyx_n_s_missing_keys, __pyx_n_s_key, __pyx_n_s_missing); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__262); - __Pyx_GIVEREF(__pyx_tuple__262); - __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_arrays, 227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(1, 227, __pyx_L1_error) - - __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__264); - __Pyx_GIVEREF(__pyx_tuple__264); - __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_parameters, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(1, 276, __pyx_L1_error) - - __pyx_tuple__266 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parameters, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_param, __pyx_n_s_value); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__266); - __Pyx_GIVEREF(__pyx_tuple__266); - __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_parameters, 286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(1, 286, __pyx_L1_error) - __pyx_tuple__268 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__268); - __Pyx_GIVEREF(__pyx_tuple__268); - - __pyx_tuple__269 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_update_info, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_skip_first, __pyx_n_s_i, __pyx_n_s_param_name); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__269); - __Pyx_GIVEREF(__pyx_tuple__269); - __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_function_args, 301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(1, 301, __pyx_L1_error) - - __pyx_tuple__271 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_holder, __pyx_n_s_i, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_type, __pyx_n_s_lookback); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__271); - __Pyx_GIVEREF(__pyx_tuple__271); - __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 336, __pyx_L1_error) - - __pyx_tuple__273 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__273); - __Pyx_GIVEREF(__pyx_tuple__273); - __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_names, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(1, 357, __pyx_L1_error) - - __pyx_tuple__275 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__275); - __Pyx_GIVEREF(__pyx_tuple__275); - __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(1, 367, __pyx_L1_error) - - __pyx_tuple__277 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__277)) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__277); - __Pyx_GIVEREF(__pyx_tuple__277); - __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(1, 399, __pyx_L1_error) - - __pyx_tuple__279 = PyTuple_Pack(16, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_opt_input_values, __pyx_n_s_price_series_name_values, __pyx_n_s_input_arrays, __pyx_n_s_input_price_series_names, __pyx_n_s_i, __pyx_n_s_arg, __pyx_n_s_msg, __pyx_n_s_no_existing_input_arrays, __pyx_n_s_param_name, __pyx_n_s_value, __pyx_n_s_input_name, __pyx_n_s_n); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__279); - __Pyx_GIVEREF(__pyx_tuple__279); - __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(1, 411, __pyx_L1_error) - - __pyx_tuple__281 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_input_name, __pyx_n_s_price_series, __pyx_n_s_name); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__281); - __Pyx_GIVEREF(__pyx_tuple__281); - __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_input_price_series_names_2, 477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(1, 477, __pyx_L1_error) - - __pyx_tuple__283 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_args, __pyx_n_s_price_series, __pyx_n_s_series, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_results, __pyx_n_s_keys, __pyx_n_s_i, __pyx_n_s_output); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__283); - __Pyx_GIVEREF(__pyx_tuple__283); - __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call_function, 489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 489, __pyx_L1_error) - - __pyx_tuple__285 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__285); - __Pyx_GIVEREF(__pyx_tuple__285); - __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_check_opt_input_value, 520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(1, 520, __pyx_L1_error) - - __pyx_tuple__287 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_local, __pyx_n_s_value); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__287); - __Pyx_GIVEREF(__pyx_tuple__287); - __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_opt_input_value, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(1, 535, __pyx_L1_error) - - __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_repr, 545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(1, 545, __pyx_L1_error) - - __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_unicode, 548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(1, 548, __pyx_L1_error) - - __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(1, 551, __pyx_L1_error) - - __pyx_tuple__292 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__292); - __Pyx_GIVEREF(__pyx_tuple__292); - __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getGroupTable, 565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(1, 565, __pyx_L1_error) - - __pyx_tuple__294 = PyTuple_Pack(4, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__294); - __Pyx_GIVEREF(__pyx_tuple__294); - __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncTable, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(1, 577, __pyx_L1_error) - - __pyx_tuple__296 = PyTuple_Pack(7, __pyx_n_s_flag, __pyx_n_s_flags_lookup_dict, __pyx_n_s_value_range, __pyx_n_s_min_int, __pyx_n_s_max_int, __pyx_n_s_ret, __pyx_n_s_i); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__296); - __Pyx_GIVEREF(__pyx_tuple__296); - __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_flags, 589, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(1, 589, __pyx_L1_error) - - __pyx_tuple__298 = PyTuple_Pack(3, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__298); - __Pyx_GIVEREF(__pyx_tuple__298); - __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncInfo, 648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(1, 648, __pyx_L1_error) - - __pyx_tuple__300 = PyTuple_Pack(5, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__300); - __Pyx_GIVEREF(__pyx_tuple__300); - __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getInputParameterInfo, 667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(1, 667, __pyx_L1_error) - - __pyx_tuple__302 = PyTuple_Pack(6, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name, __pyx_n_s_default_value); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__302); - __Pyx_GIVEREF(__pyx_tuple__302); - __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(1, 688, __pyx_L1_error) - - __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOutputParameterInfo, 712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(1, 712, __pyx_L1_error) - - __pyx_tuple__305 = PyTuple_Pack(13, __pyx_n_s_func_info, __pyx_n_s_defaults, __pyx_n_s_func_line, __pyx_n_s_func_args, __pyx_n_s_docs, __pyx_n_s_input_names, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_params, __pyx_n_s_param, __pyx_n_s_outputs, __pyx_n_s_output, __pyx_n_s_documentation); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__305); - __Pyx_GIVEREF(__pyx_tuple__305); - __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__305, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_defaults_and_docs, 732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(1, 732, __pyx_L1_error) - - __pyx_tuple__307 = PyTuple_Pack(7, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__307)) __PYX_ERR(4, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__307); - __Pyx_GIVEREF(__pyx_tuple__307); - __pyx_codeobj__308 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ACOS, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__308)) __PYX_ERR(4, 9, __pyx_L1_error) - - __pyx_tuple__309 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__309)) __PYX_ERR(4, 36, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__309); - __Pyx_GIVEREF(__pyx_tuple__309); - __pyx_codeobj__310 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__309, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AD, 36, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__310)) __PYX_ERR(4, 36, __pyx_L1_error) - - __pyx_tuple__311 = PyTuple_Pack(9, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real0_data, __pyx_n_s_real1_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__311)) __PYX_ERR(4, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__311); - __Pyx_GIVEREF(__pyx_tuple__311); - __pyx_codeobj__312 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADD, 72, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__312)) __PYX_ERR(4, 72, __pyx_L1_error) - - __pyx_tuple__313 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(4, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__313); - __Pyx_GIVEREF(__pyx_tuple__313); - __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__313, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADOSC, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(4, 103, __pyx_L1_error) - - __pyx_tuple__315 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__315); - __Pyx_GIVEREF(__pyx_tuple__315); - __pyx_codeobj__316 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADX, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__316)) __PYX_ERR(4, 142, __pyx_L1_error) - - __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADXR, 177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(4, 177, __pyx_L1_error) - - __pyx_tuple__318 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(4, 212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__318); - __Pyx_GIVEREF(__pyx_tuple__318); - __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_APO, 212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(4, 212, __pyx_L1_error) - - __pyx_tuple__320 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__320)) __PYX_ERR(4, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__320); - __Pyx_GIVEREF(__pyx_tuple__320); - __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__320, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROON, 243, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(4, 243, __pyx_L1_error) - - __pyx_tuple__322 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__322)) __PYX_ERR(4, 278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__322); - __Pyx_GIVEREF(__pyx_tuple__322); - __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROONOSC, 278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(4, 278, __pyx_L1_error) - - __pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ASIN, 310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(4, 310, __pyx_L1_error) - - __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ATAN, 337, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(4, 337, __pyx_L1_error) - - __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ATR, 364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(4, 364, __pyx_L1_error) - - __pyx_tuple__327 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__327)) __PYX_ERR(4, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__327); - __Pyx_GIVEREF(__pyx_tuple__327); - __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AVGPRICE, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(4, 399, __pyx_L1_error) - - __pyx_tuple__329 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__329)) __PYX_ERR(4, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__329); - __Pyx_GIVEREF(__pyx_tuple__329); - __pyx_codeobj__330 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__329, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BBANDS, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__330)) __PYX_ERR(4, 435, __pyx_L1_error) - - __pyx_tuple__331 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real0_data, __pyx_n_s_real1_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__331)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__331); - __Pyx_GIVEREF(__pyx_tuple__331); - __pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BETA, 473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(4, 473, __pyx_L1_error) - - __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BOP, 506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(4, 506, __pyx_L1_error) - - __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CCI, 542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(4, 542, __pyx_L1_error) - - __pyx_tuple__335 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(4, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__335); - __Pyx_GIVEREF(__pyx_tuple__335); - __pyx_codeobj__336 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL2CROWS, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__336)) __PYX_ERR(4, 577, __pyx_L1_error) - - __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3BLACKCROWS, 613, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(4, 613, __pyx_L1_error) - - __pyx_codeobj__338 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3INSIDE, 649, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__338)) __PYX_ERR(4, 649, __pyx_L1_error) - - __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3LINESTRIKE, 685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(4, 685, __pyx_L1_error) - - __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3OUTSIDE, 721, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(4, 721, __pyx_L1_error) - - __pyx_codeobj__341 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3STARSINSOUTH, 757, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__341)) __PYX_ERR(4, 757, __pyx_L1_error) - - __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3WHITESOLDIERS, 793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(4, 793, __pyx_L1_error) - - __pyx_tuple__343 = PyTuple_Pack(14, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(4, 829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__343); - __Pyx_GIVEREF(__pyx_tuple__343); - __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLABANDONEDBABY, 829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(4, 829, __pyx_L1_error) - - __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLADVANCEBLOCK, 867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(4, 867, __pyx_L1_error) - - __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBELTHOLD, 903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(4, 903, __pyx_L1_error) - - __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBREAKAWAY, 939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(4, 939, __pyx_L1_error) - - __pyx_codeobj__348 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, 975, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(4, 975, __pyx_L1_error) - - __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCONCEALBABYSWALL, 1011, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(4, 1011, __pyx_L1_error) - - __pyx_codeobj__350 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCOUNTERATTACK, 1047, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(4, 1047, __pyx_L1_error) - - __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDARKCLOUDCOVER, 1083, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(4, 1083, __pyx_L1_error) - - __pyx_codeobj__352 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJI, 1121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__352)) __PYX_ERR(4, 1121, __pyx_L1_error) - - __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJISTAR, 1157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(4, 1157, __pyx_L1_error) - - __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDRAGONFLYDOJI, 1193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(4, 1193, __pyx_L1_error) - - __pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLENGULFING, 1229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(4, 1229, __pyx_L1_error) - - __pyx_codeobj__356 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGDOJISTAR, 1265, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(4, 1265, __pyx_L1_error) - - __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGSTAR, 1303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(4, 1303, __pyx_L1_error) - - __pyx_codeobj__358 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, 1341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__358)) __PYX_ERR(4, 1341, __pyx_L1_error) - - __pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGRAVESTONEDOJI, 1377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(4, 1377, __pyx_L1_error) - - __pyx_codeobj__360 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHAMMER, 1413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__360)) __PYX_ERR(4, 1413, __pyx_L1_error) - - __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHANGINGMAN, 1449, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(4, 1449, __pyx_L1_error) - - __pyx_codeobj__362 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMI, 1485, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__362)) __PYX_ERR(4, 1485, __pyx_L1_error) - - __pyx_codeobj__363 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMICROSS, 1521, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(4, 1521, __pyx_L1_error) - - __pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIGHWAVE, 1557, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(4, 1557, __pyx_L1_error) - - __pyx_codeobj__365 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKE, 1593, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__365)) __PYX_ERR(4, 1593, __pyx_L1_error) - - __pyx_codeobj__366 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKEMOD, 1629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(4, 1629, __pyx_L1_error) - - __pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHOMINGPIGEON, 1665, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(4, 1665, __pyx_L1_error) - - __pyx_codeobj__368 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLIDENTICAL3CROWS, 1701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(4, 1701, __pyx_L1_error) - - __pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINNECK, 1737, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(4, 1737, __pyx_L1_error) - - __pyx_codeobj__370 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINVERTEDHAMMER, 1773, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(4, 1773, __pyx_L1_error) - - __pyx_codeobj__371 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKING, 1809, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__371)) __PYX_ERR(4, 1809, __pyx_L1_error) - - __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKINGBYLENGTH, 1845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(4, 1845, __pyx_L1_error) - - __pyx_codeobj__373 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLADDERBOTTOM, 1881, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(4, 1881, __pyx_L1_error) - - __pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, 1917, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(4, 1917, __pyx_L1_error) - - __pyx_codeobj__375 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLINE, 1953, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__375)) __PYX_ERR(4, 1953, __pyx_L1_error) - - __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMARUBOZU, 1989, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(4, 1989, __pyx_L1_error) - - __pyx_codeobj__377 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATCHINGLOW, 2025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__377)) __PYX_ERR(4, 2025, __pyx_L1_error) - - __pyx_codeobj__378 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATHOLD, 2061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(4, 2061, __pyx_L1_error) - - __pyx_codeobj__379 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGDOJISTAR, 2099, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(4, 2099, __pyx_L1_error) - - __pyx_codeobj__380 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGSTAR, 2137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__380)) __PYX_ERR(4, 2137, __pyx_L1_error) - - __pyx_codeobj__381 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLONNECK, 2175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(4, 2175, __pyx_L1_error) - - __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLPIERCING, 2211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(4, 2211, __pyx_L1_error) - - __pyx_codeobj__383 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRICKSHAWMAN, 2247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(4, 2247, __pyx_L1_error) - - __pyx_codeobj__384 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRISEFALL3METHODS, 2283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(4, 2283, __pyx_L1_error) - - __pyx_codeobj__385 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSEPARATINGLINES, 2319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(4, 2319, __pyx_L1_error) - - __pyx_codeobj__386 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHOOTINGSTAR, 2355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(4, 2355, __pyx_L1_error) - - __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHORTLINE, 2391, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(4, 2391, __pyx_L1_error) - - __pyx_codeobj__388 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSPINNINGTOP, 2427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__388)) __PYX_ERR(4, 2427, __pyx_L1_error) - - __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTALLEDPATTERN, 2463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(4, 2463, __pyx_L1_error) - - __pyx_codeobj__390 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTICKSANDWICH, 2499, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(4, 2499, __pyx_L1_error) - - __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTAKURI, 2535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(4, 2535, __pyx_L1_error) - - __pyx_codeobj__392 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTASUKIGAP, 2571, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(4, 2571, __pyx_L1_error) - - __pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTHRUSTING, 2607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(4, 2607, __pyx_L1_error) - - __pyx_codeobj__394 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTRISTAR, 2643, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(4, 2643, __pyx_L1_error) - - __pyx_codeobj__395 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUNIQUE3RIVER, 2679, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__395)) __PYX_ERR(4, 2679, __pyx_L1_error) - - __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, 2715, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(4, 2715, __pyx_L1_error) - - __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, 2751, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(4, 2751, __pyx_L1_error) - - __pyx_codeobj__398 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CEIL, 2787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(4, 2787, __pyx_L1_error) - - __pyx_tuple__399 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__399)) __PYX_ERR(4, 2814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__399); - __Pyx_GIVEREF(__pyx_tuple__399); - __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CMO, 2814, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(4, 2814, __pyx_L1_error) - - __pyx_codeobj__401 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CORREL, 2843, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__401)) __PYX_ERR(4, 2843, __pyx_L1_error) - - __pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COS, 2876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(4, 2876, __pyx_L1_error) - - __pyx_codeobj__403 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COSH, 2903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__403)) __PYX_ERR(4, 2903, __pyx_L1_error) - - __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DEMA, 2930, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(4, 2930, __pyx_L1_error) - - __pyx_codeobj__405 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DIV, 2959, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__405)) __PYX_ERR(4, 2959, __pyx_L1_error) - - __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DX, 2990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(4, 2990, __pyx_L1_error) - - __pyx_codeobj__407 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EMA, 3025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__407)) __PYX_ERR(4, 3025, __pyx_L1_error) - - __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EXP, 3054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(4, 3054, __pyx_L1_error) - - __pyx_codeobj__409 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_FLOOR, 3081, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__409)) __PYX_ERR(4, 3081, __pyx_L1_error) - - __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPERIOD, 3108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(4, 3108, __pyx_L1_error) - - __pyx_codeobj__411 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPHASE, 3135, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__411)) __PYX_ERR(4, 3135, __pyx_L1_error) - - __pyx_tuple__412 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__412)) __PYX_ERR(4, 3162, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__412); - __Pyx_GIVEREF(__pyx_tuple__412); - __pyx_codeobj__413 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__412, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_PHASOR, 3162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(4, 3162, __pyx_L1_error) - - __pyx_tuple__414 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__414)) __PYX_ERR(4, 3192, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__414); - __Pyx_GIVEREF(__pyx_tuple__414); - __pyx_codeobj__415 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__414, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_SINE, 3192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__415)) __PYX_ERR(4, 3192, __pyx_L1_error) - - __pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDLINE, 3222, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(4, 3222, __pyx_L1_error) - - __pyx_tuple__417 = PyTuple_Pack(7, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__417)) __PYX_ERR(4, 3249, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__417); - __Pyx_GIVEREF(__pyx_tuple__417); - __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__417, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDMODE, 3249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(4, 3249, __pyx_L1_error) - - __pyx_codeobj__419 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_KAMA, 3276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(4, 3276, __pyx_L1_error) - - __pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG, 3305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(4, 3305, __pyx_L1_error) - - __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_ANGLE, 3334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(4, 3334, __pyx_L1_error) - - __pyx_codeobj__422 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_INTERCEPT, 3363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__422)) __PYX_ERR(4, 3363, __pyx_L1_error) - - __pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_SLOPE, 3392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(4, 3392, __pyx_L1_error) - - __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LN, 3421, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(4, 3421, __pyx_L1_error) - - __pyx_codeobj__425 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LOG10, 3448, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__425)) __PYX_ERR(4, 3448, __pyx_L1_error) - - __pyx_tuple__426 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__426)) __PYX_ERR(4, 3475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__426); - __Pyx_GIVEREF(__pyx_tuple__426); - __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__426, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MA, 3475, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(4, 3475, __pyx_L1_error) - - __pyx_tuple__428 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__428)) __PYX_ERR(4, 3505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__428); - __Pyx_GIVEREF(__pyx_tuple__428); - __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__428, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACD, 3505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(4, 3505, __pyx_L1_error) - - __pyx_tuple__430 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__430)) __PYX_ERR(4, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__430); - __Pyx_GIVEREF(__pyx_tuple__430); - __pyx_codeobj__431 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__430, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDEXT, 3542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(4, 3542, __pyx_L1_error) - - __pyx_tuple__432 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__432)) __PYX_ERR(4, 3582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__432); - __Pyx_GIVEREF(__pyx_tuple__432); - __pyx_codeobj__433 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__432, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDFIX, 3582, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__433)) __PYX_ERR(4, 3582, __pyx_L1_error) - - __pyx_tuple__434 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__434)) __PYX_ERR(4, 3617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__434); - __Pyx_GIVEREF(__pyx_tuple__434); - __pyx_codeobj__435 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__434, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAMA, 3617, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__435)) __PYX_ERR(4, 3617, __pyx_L1_error) - - __pyx_tuple__436 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_periods_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__436)) __PYX_ERR(4, 3650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__436); - __Pyx_GIVEREF(__pyx_tuple__436); - __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__436, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAVP, 3650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(4, 3650, __pyx_L1_error) - - __pyx_codeobj__438 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAX, 3685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__438)) __PYX_ERR(4, 3685, __pyx_L1_error) - - __pyx_tuple__439 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__439)) __PYX_ERR(4, 3714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__439); - __Pyx_GIVEREF(__pyx_tuple__439); - __pyx_codeobj__440 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAXINDEX, 3714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__440)) __PYX_ERR(4, 3714, __pyx_L1_error) - - __pyx_tuple__441 = PyTuple_Pack(9, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__441)) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__441); - __Pyx_GIVEREF(__pyx_tuple__441); - __pyx_codeobj__442 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__441, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MEDPRICE, 3743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__442)) __PYX_ERR(4, 3743, __pyx_L1_error) - - __pyx_tuple__443 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__443)) __PYX_ERR(4, 3773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__443); - __Pyx_GIVEREF(__pyx_tuple__443); - __pyx_codeobj__444 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__443, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MFI, 3773, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__444)) __PYX_ERR(4, 3773, __pyx_L1_error) - - __pyx_codeobj__445 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPOINT, 3811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__445)) __PYX_ERR(4, 3811, __pyx_L1_error) - - __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPRICE, 3840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(4, 3840, __pyx_L1_error) - - __pyx_codeobj__447 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIN, 3872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__447)) __PYX_ERR(4, 3872, __pyx_L1_error) - - __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MININDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(4, 3901, __pyx_L1_error) - - __pyx_tuple__449 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__449)) __PYX_ERR(4, 3930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__449); - __Pyx_GIVEREF(__pyx_tuple__449); - __pyx_codeobj__450 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__449, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAX, 3930, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__450)) __PYX_ERR(4, 3930, __pyx_L1_error) - - __pyx_tuple__451 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx); if (unlikely(!__pyx_tuple__451)) __PYX_ERR(4, 3962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__451); - __Pyx_GIVEREF(__pyx_tuple__451); - __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__451, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAXINDEX, 3962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(4, 3962, __pyx_L1_error) - - __pyx_codeobj__453 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DI, 3994, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__453)) __PYX_ERR(4, 3994, __pyx_L1_error) - - __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DM, 4029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(4, 4029, __pyx_L1_error) - - __pyx_codeobj__455 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MOM, 4061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__455)) __PYX_ERR(4, 4061, __pyx_L1_error) - - __pyx_codeobj__456 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MULT, 4090, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(4, 4090, __pyx_L1_error) - - __pyx_codeobj__457 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_NATR, 4121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(4, 4121, __pyx_L1_error) - - __pyx_tuple__458 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__458)) __PYX_ERR(4, 4156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__458); - __Pyx_GIVEREF(__pyx_tuple__458); - __pyx_codeobj__459 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__458, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_OBV, 4156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__459)) __PYX_ERR(4, 4156, __pyx_L1_error) - - __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DI, 4187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(4, 4187, __pyx_L1_error) - - __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DM, 4222, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(4, 4222, __pyx_L1_error) - - __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PPO, 4254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(4, 4254, __pyx_L1_error) - - __pyx_codeobj__463 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROC, 4285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__463)) __PYX_ERR(4, 4285, __pyx_L1_error) - - __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCP, 4314, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(4, 4314, __pyx_L1_error) - - __pyx_codeobj__465 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR, 4343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__465)) __PYX_ERR(4, 4343, __pyx_L1_error) - - __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR100, 4372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(4, 4372, __pyx_L1_error) - - __pyx_codeobj__467 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_RSI, 4401, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__467)) __PYX_ERR(4, 4401, __pyx_L1_error) - - __pyx_tuple__468 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__468)) __PYX_ERR(4, 4430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__468); - __Pyx_GIVEREF(__pyx_tuple__468); - __pyx_codeobj__469 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__468, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAR, 4430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__469)) __PYX_ERR(4, 4430, __pyx_L1_error) - - __pyx_tuple__470 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__470)) __PYX_ERR(4, 4463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__470); - __Pyx_GIVEREF(__pyx_tuple__470); - __pyx_codeobj__471 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__470, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAREXT, 4463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__471)) __PYX_ERR(4, 4463, __pyx_L1_error) - - __pyx_codeobj__472 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SIN, 4502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(4, 4502, __pyx_L1_error) - - __pyx_codeobj__473 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SINH, 4529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__473)) __PYX_ERR(4, 4529, __pyx_L1_error) - - __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SMA, 4556, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(4, 4556, __pyx_L1_error) - - __pyx_codeobj__475 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SQRT, 4585, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(4, 4585, __pyx_L1_error) - - __pyx_tuple__476 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__476)) __PYX_ERR(4, 4612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__476); - __Pyx_GIVEREF(__pyx_tuple__476); - __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STDDEV, 4612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(4, 4612, __pyx_L1_error) - - __pyx_tuple__478 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(4, 4642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__478); - __Pyx_GIVEREF(__pyx_tuple__478); - __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCH, 4642, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(4, 4642, __pyx_L1_error) - - __pyx_tuple__480 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__480)) __PYX_ERR(4, 4684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__480); - __Pyx_GIVEREF(__pyx_tuple__480); - __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHF, 4684, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(4, 4684, __pyx_L1_error) - - __pyx_tuple__482 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__482)) __PYX_ERR(4, 4724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__482); - __Pyx_GIVEREF(__pyx_tuple__482); - __pyx_codeobj__483 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__482, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHRSI, 4724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(4, 4724, __pyx_L1_error) - - __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUB, 4759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(4, 4759, __pyx_L1_error) - - __pyx_codeobj__485 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUM, 4790, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__485)) __PYX_ERR(4, 4790, __pyx_L1_error) - - __pyx_tuple__486 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__486)) __PYX_ERR(4, 4819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__486); - __Pyx_GIVEREF(__pyx_tuple__486); - __pyx_codeobj__487 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__486, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_T3, 4819, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(4, 4819, __pyx_L1_error) - - __pyx_codeobj__488 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TAN, 4849, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__488)) __PYX_ERR(4, 4849, __pyx_L1_error) - - __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TANH, 4876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(4, 4876, __pyx_L1_error) - - __pyx_codeobj__490 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TEMA, 4903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__490)) __PYX_ERR(4, 4903, __pyx_L1_error) - - __pyx_tuple__491 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__491)) __PYX_ERR(4, 4932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__491); - __Pyx_GIVEREF(__pyx_tuple__491); - __pyx_codeobj__492 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRANGE, 4932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__492)) __PYX_ERR(4, 4932, __pyx_L1_error) - - __pyx_codeobj__493 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIMA, 4965, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__493)) __PYX_ERR(4, 4965, __pyx_L1_error) - - __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIX, 4994, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(4, 4994, __pyx_L1_error) - - __pyx_codeobj__495 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TSF, 5023, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__495)) __PYX_ERR(4, 5023, __pyx_L1_error) - - __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TYPPRICE, 5052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(4, 5052, __pyx_L1_error) - - __pyx_tuple__497 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__497)) __PYX_ERR(4, 5085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__497); - __Pyx_GIVEREF(__pyx_tuple__497); - __pyx_codeobj__498 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ULTOSC, 5085, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(4, 5085, __pyx_L1_error) - - __pyx_codeobj__499 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_VAR, 5122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(4, 5122, __pyx_L1_error) - - __pyx_codeobj__500 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WCLPRICE, 5152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(4, 5152, __pyx_L1_error) - - __pyx_codeobj__501 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WILLR, 5185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__501)) __PYX_ERR(4, 5185, __pyx_L1_error) - - __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WMA, 5220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(4, 5220, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; +static int __Pyx_CreateStringTabAndInitStrings(void) { + __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, + {&__pyx_n_s_ACOS, __pyx_k_ACOS, sizeof(__pyx_k_ACOS), 0, 0, 1, 1}, + {&__pyx_n_s_AD, __pyx_k_AD, sizeof(__pyx_k_AD), 0, 0, 1, 1}, + {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_ADOSC, __pyx_k_ADOSC, sizeof(__pyx_k_ADOSC), 0, 0, 1, 1}, + {&__pyx_n_s_ADX, __pyx_k_ADX, sizeof(__pyx_k_ADX), 0, 0, 1, 1}, + {&__pyx_n_s_ADXR, __pyx_k_ADXR, sizeof(__pyx_k_ADXR), 0, 0, 1, 1}, + {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1}, + {&__pyx_n_s_APO, __pyx_k_APO, sizeof(__pyx_k_APO), 0, 0, 1, 1}, + {&__pyx_n_s_AROON, __pyx_k_AROON, sizeof(__pyx_k_AROON), 0, 0, 1, 1}, + {&__pyx_n_s_AROONOSC, __pyx_k_AROONOSC, sizeof(__pyx_k_AROONOSC), 0, 0, 1, 1}, + {&__pyx_n_s_ARRAY_TYPES, __pyx_k_ARRAY_TYPES, sizeof(__pyx_k_ARRAY_TYPES), 0, 0, 1, 1}, + {&__pyx_n_s_ASIN, __pyx_k_ASIN, sizeof(__pyx_k_ASIN), 0, 0, 1, 1}, + {&__pyx_n_s_ATAN, __pyx_k_ATAN, sizeof(__pyx_k_ATAN), 0, 0, 1, 1}, + {&__pyx_n_s_ATR, __pyx_k_ATR, sizeof(__pyx_k_ATR), 0, 0, 1, 1}, + {&__pyx_n_s_AVGPRICE, __pyx_k_AVGPRICE, sizeof(__pyx_k_AVGPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_AllCandleSettings, __pyx_k_AllCandleSettings, sizeof(__pyx_k_AllCandleSettings), 0, 0, 1, 1}, + {&__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR, __pyx_k_Allocation_Error_TA_ALLOC_ERR, sizeof(__pyx_k_Allocation_Error_TA_ALLOC_ERR), 0, 0, 1, 0}, + {&__pyx_n_s_BBANDS, __pyx_k_BBANDS, sizeof(__pyx_k_BBANDS), 0, 0, 1, 1}, + {&__pyx_n_s_BETA, __pyx_k_BETA, sizeof(__pyx_k_BETA), 0, 0, 1, 1}, + {&__pyx_n_s_BOP, __pyx_k_BOP, sizeof(__pyx_k_BOP), 0, 0, 1, 1}, + {&__pyx_kp_s_Bad_Object_TA_BAD_OBJECT, __pyx_k_Bad_Object_TA_BAD_OBJECT, sizeof(__pyx_k_Bad_Object_TA_BAD_OBJECT), 0, 0, 1, 0}, + {&__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM, __pyx_k_Bad_Parameter_TA_BAD_PARAM, sizeof(__pyx_k_Bad_Parameter_TA_BAD_PARAM), 0, 0, 1, 0}, + {&__pyx_n_s_BodyDoji, __pyx_k_BodyDoji, sizeof(__pyx_k_BodyDoji), 0, 0, 1, 1}, + {&__pyx_n_s_BodyLong, __pyx_k_BodyLong, sizeof(__pyx_k_BodyLong), 0, 0, 1, 1}, + {&__pyx_n_s_BodyShort, __pyx_k_BodyShort, sizeof(__pyx_k_BodyShort), 0, 0, 1, 1}, + {&__pyx_n_s_BodyVeryLong, __pyx_k_BodyVeryLong, sizeof(__pyx_k_BodyVeryLong), 0, 0, 1, 1}, + {&__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut, __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut, sizeof(__pyx_k_Bull_Bear_Pattern_Bearish_0_Neut), 0, 0, 1, 0}, + {&__pyx_n_s_CCI, __pyx_k_CCI, sizeof(__pyx_k_CCI), 0, 0, 1, 1}, + {&__pyx_n_s_CDL2CROWS, __pyx_k_CDL2CROWS, sizeof(__pyx_k_CDL2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3BLACKCROWS, __pyx_k_CDL3BLACKCROWS, sizeof(__pyx_k_CDL3BLACKCROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3INSIDE, __pyx_k_CDL3INSIDE, sizeof(__pyx_k_CDL3INSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3LINESTRIKE, __pyx_k_CDL3LINESTRIKE, sizeof(__pyx_k_CDL3LINESTRIKE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3OUTSIDE, __pyx_k_CDL3OUTSIDE, sizeof(__pyx_k_CDL3OUTSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3STARSINSOUTH, __pyx_k_CDL3STARSINSOUTH, sizeof(__pyx_k_CDL3STARSINSOUTH), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3WHITESOLDIERS, __pyx_k_CDL3WHITESOLDIERS, sizeof(__pyx_k_CDL3WHITESOLDIERS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLABANDONEDBABY, __pyx_k_CDLABANDONEDBABY, sizeof(__pyx_k_CDLABANDONEDBABY), 0, 0, 1, 1}, + {&__pyx_n_s_CDLADVANCEBLOCK, __pyx_k_CDLADVANCEBLOCK, sizeof(__pyx_k_CDLADVANCEBLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLBELTHOLD, __pyx_k_CDLBELTHOLD, sizeof(__pyx_k_CDLBELTHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLBREAKAWAY, __pyx_k_CDLBREAKAWAY, sizeof(__pyx_k_CDLBREAKAWAY), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_k_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCONCEALBABYSWALL, __pyx_k_CDLCONCEALBABYSWALL, sizeof(__pyx_k_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCOUNTERATTACK, __pyx_k_CDLCOUNTERATTACK, sizeof(__pyx_k_CDLCOUNTERATTACK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDARKCLOUDCOVER, __pyx_k_CDLDARKCLOUDCOVER, sizeof(__pyx_k_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDOJI, __pyx_k_CDLDOJI, sizeof(__pyx_k_CDLDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDOJISTAR, __pyx_k_CDLDOJISTAR, sizeof(__pyx_k_CDLDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDRAGONFLYDOJI, __pyx_k_CDLDRAGONFLYDOJI, sizeof(__pyx_k_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLENGULFING, __pyx_k_CDLENGULFING, sizeof(__pyx_k_CDLENGULFING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLEVENINGDOJISTAR, __pyx_k_CDLEVENINGDOJISTAR, sizeof(__pyx_k_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLEVENINGSTAR, __pyx_k_CDLEVENINGSTAR, sizeof(__pyx_k_CDLEVENINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_k_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLGRAVESTONEDOJI, __pyx_k_CDLGRAVESTONEDOJI, sizeof(__pyx_k_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHAMMER, __pyx_k_CDLHAMMER, sizeof(__pyx_k_CDLHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHANGINGMAN, __pyx_k_CDLHANGINGMAN, sizeof(__pyx_k_CDLHANGINGMAN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHARAMI, __pyx_k_CDLHARAMI, sizeof(__pyx_k_CDLHARAMI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHARAMICROSS, __pyx_k_CDLHARAMICROSS, sizeof(__pyx_k_CDLHARAMICROSS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIGHWAVE, __pyx_k_CDLHIGHWAVE, sizeof(__pyx_k_CDLHIGHWAVE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIKKAKE, __pyx_k_CDLHIKKAKE, sizeof(__pyx_k_CDLHIKKAKE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIKKAKEMOD, __pyx_k_CDLHIKKAKEMOD, sizeof(__pyx_k_CDLHIKKAKEMOD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHOMINGPIGEON, __pyx_k_CDLHOMINGPIGEON, sizeof(__pyx_k_CDLHOMINGPIGEON), 0, 0, 1, 1}, + {&__pyx_n_s_CDLIDENTICAL3CROWS, __pyx_k_CDLIDENTICAL3CROWS, sizeof(__pyx_k_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLINNECK, __pyx_k_CDLINNECK, sizeof(__pyx_k_CDLINNECK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLINVERTEDHAMMER, __pyx_k_CDLINVERTEDHAMMER, sizeof(__pyx_k_CDLINVERTEDHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLKICKING, __pyx_k_CDLKICKING, sizeof(__pyx_k_CDLKICKING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLKICKINGBYLENGTH, __pyx_k_CDLKICKINGBYLENGTH, sizeof(__pyx_k_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLADDERBOTTOM, __pyx_k_CDLLADDERBOTTOM, sizeof(__pyx_k_CDLLADDERBOTTOM), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_k_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLONGLINE, __pyx_k_CDLLONGLINE, sizeof(__pyx_k_CDLLONGLINE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMARUBOZU, __pyx_k_CDLMARUBOZU, sizeof(__pyx_k_CDLMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMATCHINGLOW, __pyx_k_CDLMATCHINGLOW, sizeof(__pyx_k_CDLMATCHINGLOW), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMATHOLD, __pyx_k_CDLMATHOLD, sizeof(__pyx_k_CDLMATHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMORNINGDOJISTAR, __pyx_k_CDLMORNINGDOJISTAR, sizeof(__pyx_k_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMORNINGSTAR, __pyx_k_CDLMORNINGSTAR, sizeof(__pyx_k_CDLMORNINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLONNECK, __pyx_k_CDLONNECK, sizeof(__pyx_k_CDLONNECK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLPIERCING, __pyx_k_CDLPIERCING, sizeof(__pyx_k_CDLPIERCING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLRICKSHAWMAN, __pyx_k_CDLRICKSHAWMAN, sizeof(__pyx_k_CDLRICKSHAWMAN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLRISEFALL3METHODS, __pyx_k_CDLRISEFALL3METHODS, sizeof(__pyx_k_CDLRISEFALL3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSEPARATINGLINES, __pyx_k_CDLSEPARATINGLINES, sizeof(__pyx_k_CDLSEPARATINGLINES), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSHOOTINGSTAR, __pyx_k_CDLSHOOTINGSTAR, sizeof(__pyx_k_CDLSHOOTINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSHORTLINE, __pyx_k_CDLSHORTLINE, sizeof(__pyx_k_CDLSHORTLINE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSPINNINGTOP, __pyx_k_CDLSPINNINGTOP, sizeof(__pyx_k_CDLSPINNINGTOP), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSTALLEDPATTERN, __pyx_k_CDLSTALLEDPATTERN, sizeof(__pyx_k_CDLSTALLEDPATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSTICKSANDWICH, __pyx_k_CDLSTICKSANDWICH, sizeof(__pyx_k_CDLSTICKSANDWICH), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTAKURI, __pyx_k_CDLTAKURI, sizeof(__pyx_k_CDLTAKURI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTASUKIGAP, __pyx_k_CDLTASUKIGAP, sizeof(__pyx_k_CDLTASUKIGAP), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTHRUSTING, __pyx_k_CDLTHRUSTING, sizeof(__pyx_k_CDLTHRUSTING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTRISTAR, __pyx_k_CDLTRISTAR, sizeof(__pyx_k_CDLTRISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLUNIQUE3RIVER, __pyx_k_CDLUNIQUE3RIVER, sizeof(__pyx_k_CDLUNIQUE3RIVER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_k_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_k_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_CEIL, __pyx_k_CEIL, sizeof(__pyx_k_CEIL), 0, 0, 1, 1}, + {&__pyx_n_s_CMO, __pyx_k_CMO, sizeof(__pyx_k_CMO), 0, 0, 1, 1}, + {&__pyx_n_s_CORREL, __pyx_k_CORREL, sizeof(__pyx_k_CORREL), 0, 0, 1, 1}, + {&__pyx_n_s_COS, __pyx_k_COS, sizeof(__pyx_k_COS), 0, 0, 1, 1}, + {&__pyx_n_s_COSH, __pyx_k_COSH, sizeof(__pyx_k_COSH), 0, 0, 1, 1}, + {&__pyx_n_s_CandleSettingType, __pyx_k_CandleSettingType, sizeof(__pyx_k_CandleSettingType), 0, 0, 1, 1}, + {&__pyx_n_s_DEMA, __pyx_k_DEMA, sizeof(__pyx_k_DEMA), 0, 0, 1, 1}, + {&__pyx_n_s_DIV, __pyx_k_DIV, sizeof(__pyx_k_DIV), 0, 0, 1, 1}, + {&__pyx_n_s_DX, __pyx_k_DX, sizeof(__pyx_k_DX), 0, 0, 1, 1}, + {&__pyx_kp_s_Dashed_Line, __pyx_k_Dashed_Line, sizeof(__pyx_k_Dashed_Line), 0, 0, 1, 0}, + {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1}, + {&__pyx_n_s_Dot, __pyx_k_Dot, sizeof(__pyx_k_Dot), 0, 0, 1, 1}, + {&__pyx_kp_s_Dotted_Line, __pyx_k_Dotted_Line, sizeof(__pyx_k_Dotted_Line), 0, 0, 1, 0}, + {&__pyx_kp_s_Double_Exponential_Moving_Averag, __pyx_k_Double_Exponential_Moving_Averag, sizeof(__pyx_k_Double_Exponential_Moving_Averag), 0, 0, 1, 0}, + {&__pyx_n_s_EMA, __pyx_k_EMA, sizeof(__pyx_k_EMA), 0, 0, 1, 1}, + {&__pyx_n_s_EXP, __pyx_k_EXP, sizeof(__pyx_k_EXP), 0, 0, 1, 1}, + {&__pyx_n_s_Equal, __pyx_k_Equal, sizeof(__pyx_k_Equal), 0, 0, 1, 1}, + {&__pyx_kp_s_Exponential_Moving_Average, __pyx_k_Exponential_Moving_Average, sizeof(__pyx_k_Exponential_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_FLOOR, __pyx_k_FLOOR, sizeof(__pyx_k_FLOOR), 0, 0, 1, 1}, + {&__pyx_n_s_Far, __pyx_k_Far, sizeof(__pyx_k_Far), 0, 0, 1, 1}, + {&__pyx_n_s_Function, __pyx_k_Function, sizeof(__pyx_k_Function), 0, 0, 1, 1}, + {&__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F, __pyx_k_Function_Not_Found_TA_FUNC_NOT_F, sizeof(__pyx_k_Function_Not_Found_TA_FUNC_NOT_F), 0, 0, 1, 0}, + {&__pyx_n_s_Function___call, __pyx_k_Function___call, sizeof(__pyx_k_Function___call), 0, 0, 1, 1}, + {&__pyx_n_s_Function___call_function, __pyx_k_Function___call_function, sizeof(__pyx_k_Function___call_function), 0, 0, 1, 1}, + {&__pyx_n_s_Function___check_opt_input_value, __pyx_k_Function___check_opt_input_value, sizeof(__pyx_k_Function___check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function___get_opt_input_value, __pyx_k_Function___get_opt_input_value, sizeof(__pyx_k_Function___get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function___init, __pyx_k_Function___init, sizeof(__pyx_k_Function___init), 0, 0, 1, 1}, + {&__pyx_n_s_Function___input_price_series_na, __pyx_k_Function___input_price_series_na, sizeof(__pyx_k_Function___input_price_series_na), 0, 0, 1, 1}, + {&__pyx_n_s_Function___local, __pyx_k_Function___local, sizeof(__pyx_k_Function___local), 0, 0, 1, 1}, + {&__pyx_n_s_Function___repr, __pyx_k_Function___repr, sizeof(__pyx_k_Function___repr), 0, 0, 1, 1}, + {&__pyx_n_s_Function___str, __pyx_k_Function___str, sizeof(__pyx_k_Function___str), 0, 0, 1, 1}, + {&__pyx_n_s_Function___unicode, __pyx_k_Function___unicode, sizeof(__pyx_k_Function___unicode), 0, 0, 1, 1}, + {&__pyx_n_s_Function__call_function, __pyx_k_Function__call_function, sizeof(__pyx_k_Function__call_function), 0, 0, 1, 1}, + {&__pyx_n_s_Function__check_opt_input_value, __pyx_k_Function__check_opt_input_value, sizeof(__pyx_k_Function__check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function__get_opt_input_value, __pyx_k_Function__get_opt_input_value, sizeof(__pyx_k_Function__get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function__input_price_series_na, __pyx_k_Function__input_price_series_na, sizeof(__pyx_k_Function__input_price_series_na), 0, 0, 1, 1}, + {&__pyx_n_s_Function__local, __pyx_k_Function__local, sizeof(__pyx_k_Function__local), 0, 0, 1, 1}, + {&__pyx_n_s_Function__localdata, __pyx_k_Function__localdata, sizeof(__pyx_k_Function__localdata), 0, 0, 1, 1}, + {&__pyx_n_s_Function__name, __pyx_k_Function__name, sizeof(__pyx_k_Function__name), 0, 0, 1, 1}, + {&__pyx_n_s_Function__namestr, __pyx_k_Function__namestr, sizeof(__pyx_k_Function__namestr), 0, 0, 1, 1}, + {&__pyx_n_s_Function_function_flags, __pyx_k_Function_function_flags, sizeof(__pyx_k_Function_function_flags), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_input_arrays, __pyx_k_Function_get_input_arrays, sizeof(__pyx_k_Function_get_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_input_names, __pyx_k_Function_get_input_names, sizeof(__pyx_k_Function_get_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_parameters, __pyx_k_Function_get_parameters, sizeof(__pyx_k_Function_get_parameters), 0, 0, 1, 1}, + {&__pyx_kp_s_Function_has_an_unstable_period, __pyx_k_Function_has_an_unstable_period, sizeof(__pyx_k_Function_has_an_unstable_period), 0, 0, 1, 0}, + {&__pyx_n_s_Function_info, __pyx_k_Function_info, sizeof(__pyx_k_Function_info), 0, 0, 1, 1}, + {&__pyx_n_s_Function_lookback, __pyx_k_Function_lookback, sizeof(__pyx_k_Function_lookback), 0, 0, 1, 1}, + {&__pyx_n_s_Function_output_flags, __pyx_k_Function_output_flags, sizeof(__pyx_k_Function_output_flags), 0, 0, 1, 1}, + {&__pyx_n_s_Function_output_names, __pyx_k_Function_output_names, sizeof(__pyx_k_Function_output_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_outputs, __pyx_k_Function_outputs, sizeof(__pyx_k_Function_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_Function_run, __pyx_k_Function_run, sizeof(__pyx_k_Function_run), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_function_args, __pyx_k_Function_set_function_args, sizeof(__pyx_k_Function_set_function_args), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_input_arrays, __pyx_k_Function_set_input_arrays, sizeof(__pyx_k_Function_set_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_input_names, __pyx_k_Function_set_input_names, sizeof(__pyx_k_Function_set_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_parameters, __pyx_k_Function_set_parameters, sizeof(__pyx_k_Function_set_parameters), 0, 0, 1, 1}, + {&__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU, __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU, sizeof(__pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU), 0, 0, 1, 0}, + {&__pyx_n_s_HT_DCPERIOD, __pyx_k_HT_DCPERIOD, sizeof(__pyx_k_HT_DCPERIOD), 0, 0, 1, 1}, + {&__pyx_n_s_HT_DCPHASE, __pyx_k_HT_DCPHASE, sizeof(__pyx_k_HT_DCPHASE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_PHASOR, __pyx_k_HT_PHASOR, sizeof(__pyx_k_HT_PHASOR), 0, 0, 1, 1}, + {&__pyx_n_s_HT_SINE, __pyx_k_HT_SINE, sizeof(__pyx_k_HT_SINE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_TRENDLINE, __pyx_k_HT_TRENDLINE, sizeof(__pyx_k_HT_TRENDLINE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_TRENDMODE, __pyx_k_HT_TRENDMODE, sizeof(__pyx_k_HT_TRENDMODE), 0, 0, 1, 1}, + {&__pyx_n_s_HighLow, __pyx_k_HighLow, sizeof(__pyx_k_HighLow), 0, 0, 1, 1}, + {&__pyx_n_s_Histogram, __pyx_k_Histogram, sizeof(__pyx_k_Histogram), 0, 0, 1, 1}, + {&__pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_k_INPUT_ARRAYS_TYPES, sizeof(__pyx_k_INPUT_ARRAYS_TYPES), 0, 0, 1, 1}, + {&__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_k_INPUT_PRICE_SERIES_DEFAULTS, sizeof(__pyx_k_INPUT_PRICE_SERIES_DEFAULTS), 0, 0, 1, 1}, + {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, + {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, + {&__pyx_kp_s_Input_Not_All_Initialized_TA_INP, __pyx_k_Input_Not_All_Initialized_TA_INP, sizeof(__pyx_k_Input_Not_All_Initialized_TA_INP), 0, 0, 1, 0}, + {&__pyx_kp_s_Inputs, __pyx_k_Inputs, sizeof(__pyx_k_Inputs), 0, 0, 1, 0}, + {&__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR, __pyx_k_Internal_Error_TA_INTERNAL_ERROR, sizeof(__pyx_k_Internal_Error_TA_INTERNAL_ERROR), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE, __pyx_k_Invalid_Handle_TA_INVALID_HANDLE, sizeof(__pyx_k_Invalid_Handle_TA_INVALID_HANDLE), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS, __pyx_k_Invalid_List_Type_TA_INVALID_LIS, sizeof(__pyx_k_Invalid_List_Type_TA_INVALID_LIS), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Function_TA_IN, __pyx_k_Invalid_Parameter_Function_TA_IN, sizeof(__pyx_k_Invalid_Parameter_Function_TA_IN), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA, __pyx_k_Invalid_Parameter_Holder_TA_INVA, sizeof(__pyx_k_Invalid_Parameter_Holder_TA_INVA), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Holder_Type_TA, __pyx_k_Invalid_Parameter_Holder_Type_TA, sizeof(__pyx_k_Invalid_Parameter_Holder_Type_TA), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_k_Invalid_parameter_value_for_s_ex, sizeof(__pyx_k_Invalid_parameter_value_for_s_ex), 0, 0, 1, 0}, + {&__pyx_n_s_KAMA, __pyx_k_KAMA, sizeof(__pyx_k_KAMA), 0, 0, 1, 1}, + {&__pyx_kp_s_Kaufman_Adaptive_Moving_Average, __pyx_k_Kaufman_Adaptive_Moving_Average, sizeof(__pyx_k_Kaufman_Adaptive_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_LINEARREG, __pyx_k_LINEARREG, sizeof(__pyx_k_LINEARREG), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_ANGLE, __pyx_k_LINEARREG_ANGLE, sizeof(__pyx_k_LINEARREG_ANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_INTERCEPT, __pyx_k_LINEARREG_INTERCEPT, sizeof(__pyx_k_LINEARREG_INTERCEPT), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_SLOPE, __pyx_k_LINEARREG_SLOPE, sizeof(__pyx_k_LINEARREG_SLOPE), 0, 0, 1, 1}, + {&__pyx_n_s_LN, __pyx_k_LN, sizeof(__pyx_k_LN), 0, 0, 1, 1}, + {&__pyx_n_s_LOG10, __pyx_k_LOG10, sizeof(__pyx_k_LOG10), 0, 0, 1, 1}, + {&__pyx_kp_s_Library_Not_Initialized_TA_LIB_N, __pyx_k_Library_Not_Initialized_TA_LIB_N, sizeof(__pyx_k_Library_Not_Initialized_TA_LIB_N), 0, 0, 1, 0}, + {&__pyx_n_s_Line, __pyx_k_Line, sizeof(__pyx_k_Line), 0, 0, 1, 1}, + {&__pyx_n_s_MA, __pyx_k_MA, sizeof(__pyx_k_MA), 0, 0, 1, 1}, + {&__pyx_n_s_MACD, __pyx_k_MACD, sizeof(__pyx_k_MACD), 0, 0, 1, 1}, + {&__pyx_n_s_MACDEXT, __pyx_k_MACDEXT, sizeof(__pyx_k_MACDEXT), 0, 0, 1, 1}, + {&__pyx_n_s_MACDFIX, __pyx_k_MACDFIX, sizeof(__pyx_k_MACDFIX), 0, 0, 1, 1}, + {&__pyx_n_s_MAMA, __pyx_k_MAMA, sizeof(__pyx_k_MAMA), 0, 0, 1, 1}, + {&__pyx_n_s_MAVP, __pyx_k_MAVP, sizeof(__pyx_k_MAVP), 0, 0, 1, 1}, + {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_MAXINDEX, __pyx_k_MAXINDEX, sizeof(__pyx_k_MAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type, __pyx_k_MA_Type, sizeof(__pyx_k_MA_Type), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type___getitem, __pyx_k_MA_Type___getitem, sizeof(__pyx_k_MA_Type___getitem), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type___init, __pyx_k_MA_Type___init, sizeof(__pyx_k_MA_Type___init), 0, 0, 1, 1}, + {&__pyx_n_s_MEDPRICE, __pyx_k_MEDPRICE, sizeof(__pyx_k_MEDPRICE), 0, 0, 1, 1}, + {&__pyx_kp_s_MESA_Adaptive_Moving_Average, __pyx_k_MESA_Adaptive_Moving_Average, sizeof(__pyx_k_MESA_Adaptive_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_MFI, __pyx_k_MFI, sizeof(__pyx_k_MFI), 0, 0, 1, 1}, + {&__pyx_n_s_MIDPOINT, __pyx_k_MIDPOINT, sizeof(__pyx_k_MIDPOINT), 0, 0, 1, 1}, + {&__pyx_n_s_MIDPRICE, __pyx_k_MIDPRICE, sizeof(__pyx_k_MIDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_MIN, __pyx_k_MIN, sizeof(__pyx_k_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_MININDEX, __pyx_k_MININDEX, sizeof(__pyx_k_MININDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MINMAX, __pyx_k_MINMAX, sizeof(__pyx_k_MINMAX), 0, 0, 1, 1}, + {&__pyx_n_s_MINMAXINDEX, __pyx_k_MINMAXINDEX, sizeof(__pyx_k_MINMAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MINUS_DI, __pyx_k_MINUS_DI, sizeof(__pyx_k_MINUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_MINUS_DM, __pyx_k_MINUS_DM, sizeof(__pyx_k_MINUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_MOM, __pyx_k_MOM, sizeof(__pyx_k_MOM), 0, 0, 1, 1}, + {&__pyx_n_s_MULT, __pyx_k_MULT, sizeof(__pyx_k_MULT), 0, 0, 1, 1}, + {&__pyx_n_s_ModuleNotFoundError, __pyx_k_ModuleNotFoundError, sizeof(__pyx_k_ModuleNotFoundError), 0, 0, 1, 1}, + {&__pyx_n_s_NATR, __pyx_k_NATR, sizeof(__pyx_k_NATR), 0, 0, 1, 1}, + {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, + {&__pyx_n_s_NameError, __pyx_k_NameError, sizeof(__pyx_k_NameError), 0, 0, 1, 1}, + {&__pyx_n_s_Near, __pyx_k_Near, sizeof(__pyx_k_Near), 0, 0, 1, 1}, + {&__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED, __pyx_k_Not_Supported_TA_NOT_SUPPORTED, sizeof(__pyx_k_Not_Supported_TA_NOT_SUPPORTED), 0, 0, 1, 0}, + {&__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_k_Not_enough_price_arguments_expec, sizeof(__pyx_k_Not_enough_price_arguments_expec), 0, 0, 1, 0}, + {&__pyx_n_s_OBV, __pyx_k_OBV, sizeof(__pyx_k_OBV), 0, 0, 1, 1}, + {&__pyx_n_s_OrderedDict, __pyx_k_OrderedDict, sizeof(__pyx_k_OrderedDict), 0, 0, 1, 1}, + {&__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF, __pyx_k_Out_of_Range_End_Index_TA_OUT_OF, sizeof(__pyx_k_Out_of_Range_End_Index_TA_OUT_OF), 0, 0, 1, 0}, + {&__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT, __pyx_k_Out_of_Range_Start_Index_TA_OUT, sizeof(__pyx_k_Out_of_Range_Start_Index_TA_OUT), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_Not_All_Initialized_TA_OU, __pyx_k_Output_Not_All_Initialized_TA_OU, sizeof(__pyx_k_Output_Not_All_Initialized_TA_OU), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_negative, __pyx_k_Output_can_be_negative, sizeof(__pyx_k_Output_can_be_negative), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_positive, __pyx_k_Output_can_be_positive, sizeof(__pyx_k_Output_can_be_positive), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_zero, __pyx_k_Output_can_be_zero, sizeof(__pyx_k_Output_can_be_zero), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_is_a_candlestick, __pyx_k_Output_is_a_candlestick, sizeof(__pyx_k_Output_is_a_candlestick), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_is_over_volume, __pyx_k_Output_is_over_volume, sizeof(__pyx_k_Output_is_over_volume), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_scale_same_as_input, __pyx_k_Output_scale_same_as_input, sizeof(__pyx_k_Output_scale_same_as_input), 0, 0, 1, 0}, + {&__pyx_kp_s_Outputs, __pyx_k_Outputs, sizeof(__pyx_k_Outputs), 0, 0, 1, 0}, + {&__pyx_n_s_PANDAS_DATAFRAME, __pyx_k_PANDAS_DATAFRAME, sizeof(__pyx_k_PANDAS_DATAFRAME), 0, 0, 1, 1}, + {&__pyx_n_s_PANDAS_SERIES, __pyx_k_PANDAS_SERIES, sizeof(__pyx_k_PANDAS_SERIES), 0, 0, 1, 1}, + {&__pyx_n_s_PLUS_DI, __pyx_k_PLUS_DI, sizeof(__pyx_k_PLUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_PLUS_DM, __pyx_k_PLUS_DM, sizeof(__pyx_k_PLUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_POLARS_DATAFRAME, __pyx_k_POLARS_DATAFRAME, sizeof(__pyx_k_POLARS_DATAFRAME), 0, 0, 1, 1}, + {&__pyx_n_s_POLARS_SERIES, __pyx_k_POLARS_SERIES, sizeof(__pyx_k_POLARS_SERIES), 0, 0, 1, 1}, + {&__pyx_n_s_PPO, __pyx_k_PPO, sizeof(__pyx_k_PPO), 0, 0, 1, 1}, + {&__pyx_kp_s_Parameters, __pyx_k_Parameters, sizeof(__pyx_k_Parameters), 0, 0, 1, 0}, + {&__pyx_kp_s_Pattern_Bool, __pyx_k_Pattern_Bool, sizeof(__pyx_k_Pattern_Bool), 0, 0, 1, 0}, + {&__pyx_n_s_ROC, __pyx_k_ROC, sizeof(__pyx_k_ROC), 0, 0, 1, 1}, + {&__pyx_n_s_ROCP, __pyx_k_ROCP, sizeof(__pyx_k_ROCP), 0, 0, 1, 1}, + {&__pyx_n_s_ROCR, __pyx_k_ROCR, sizeof(__pyx_k_ROCR), 0, 0, 1, 1}, + {&__pyx_n_s_ROCR100, __pyx_k_ROCR100, sizeof(__pyx_k_ROCR100), 0, 0, 1, 1}, + {&__pyx_n_s_RSI, __pyx_k_RSI, sizeof(__pyx_k_RSI), 0, 0, 1, 1}, + {&__pyx_n_s_RangeType, __pyx_k_RangeType, sizeof(__pyx_k_RangeType), 0, 0, 1, 1}, + {&__pyx_n_s_RealBody, __pyx_k_RealBody, sizeof(__pyx_k_RealBody), 0, 0, 1, 1}, + {&__pyx_n_s_SAR, __pyx_k_SAR, sizeof(__pyx_k_SAR), 0, 0, 1, 1}, + {&__pyx_n_s_SAREXT, __pyx_k_SAREXT, sizeof(__pyx_k_SAREXT), 0, 0, 1, 1}, + {&__pyx_n_s_SIN, __pyx_k_SIN, sizeof(__pyx_k_SIN), 0, 0, 1, 1}, + {&__pyx_n_s_SINH, __pyx_k_SINH, sizeof(__pyx_k_SINH), 0, 0, 1, 1}, + {&__pyx_n_s_SMA, __pyx_k_SMA, sizeof(__pyx_k_SMA), 0, 0, 1, 1}, + {&__pyx_n_s_SQRT, __pyx_k_SQRT, sizeof(__pyx_k_SQRT), 0, 0, 1, 1}, + {&__pyx_n_s_STDDEV, __pyx_k_STDDEV, sizeof(__pyx_k_STDDEV), 0, 0, 1, 1}, + {&__pyx_n_s_STOCH, __pyx_k_STOCH, sizeof(__pyx_k_STOCH), 0, 0, 1, 1}, + {&__pyx_n_s_STOCHF, __pyx_k_STOCHF, sizeof(__pyx_k_STOCHF), 0, 0, 1, 1}, + {&__pyx_n_s_STOCHRSI, __pyx_k_STOCHRSI, sizeof(__pyx_k_STOCHRSI), 0, 0, 1, 1}, + {&__pyx_n_s_SUB, __pyx_k_SUB, sizeof(__pyx_k_SUB), 0, 0, 1, 1}, + {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_Series, __pyx_k_Series, sizeof(__pyx_k_Series), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowLong, __pyx_k_ShadowLong, sizeof(__pyx_k_ShadowLong), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowShort, __pyx_k_ShadowShort, sizeof(__pyx_k_ShadowShort), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowVeryLong, __pyx_k_ShadowVeryLong, sizeof(__pyx_k_ShadowVeryLong), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowVeryShort, __pyx_k_ShadowVeryShort, sizeof(__pyx_k_ShadowVeryShort), 0, 0, 1, 1}, + {&__pyx_n_s_Shadows, __pyx_k_Shadows, sizeof(__pyx_k_Shadows), 0, 0, 1, 1}, + {&__pyx_kp_s_Simple_Moving_Average, __pyx_k_Simple_Moving_Average, sizeof(__pyx_k_Simple_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s_Strength_Pattern_200_100_Bearish, __pyx_k_Strength_Pattern_200_100_Bearish, sizeof(__pyx_k_Strength_Pattern_200_100_Bearish), 0, 0, 1, 0}, + {&__pyx_n_s_T3, __pyx_k_T3, sizeof(__pyx_k_T3), 0, 0, 1, 1}, + {&__pyx_n_s_TAN, __pyx_k_TAN, sizeof(__pyx_k_TAN), 0, 0, 1, 1}, + {&__pyx_n_s_TANH, __pyx_k_TANH, sizeof(__pyx_k_TANH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ACOS, __pyx_k_TA_ACOS, sizeof(__pyx_k_TA_ACOS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AD, __pyx_k_TA_AD, sizeof(__pyx_k_TA_AD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADD, __pyx_k_TA_ADD, sizeof(__pyx_k_TA_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADOSC, __pyx_k_TA_ADOSC, sizeof(__pyx_k_TA_ADOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADX, __pyx_k_TA_ADX, sizeof(__pyx_k_TA_ADX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADXR, __pyx_k_TA_ADXR, sizeof(__pyx_k_TA_ADXR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_APO, __pyx_k_TA_APO, sizeof(__pyx_k_TA_APO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AROON, __pyx_k_TA_AROON, sizeof(__pyx_k_TA_AROON), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AROONOSC, __pyx_k_TA_AROONOSC, sizeof(__pyx_k_TA_AROONOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ASIN, __pyx_k_TA_ASIN, sizeof(__pyx_k_TA_ASIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ATAN, __pyx_k_TA_ATAN, sizeof(__pyx_k_TA_ATAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ATR, __pyx_k_TA_ATR, sizeof(__pyx_k_TA_ATR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AVGPRICE, __pyx_k_TA_AVGPRICE, sizeof(__pyx_k_TA_AVGPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BBANDS, __pyx_k_TA_BBANDS, sizeof(__pyx_k_TA_BBANDS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BETA, __pyx_k_TA_BETA, sizeof(__pyx_k_TA_BETA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BOP, __pyx_k_TA_BOP, sizeof(__pyx_k_TA_BOP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CCI, __pyx_k_TA_CCI, sizeof(__pyx_k_TA_CCI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL2CROWS, __pyx_k_TA_CDL2CROWS, sizeof(__pyx_k_TA_CDL2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_k_TA_CDL3BLACKCROWS, sizeof(__pyx_k_TA_CDL3BLACKCROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3INSIDE, __pyx_k_TA_CDL3INSIDE, sizeof(__pyx_k_TA_CDL3INSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_k_TA_CDL3LINESTRIKE, sizeof(__pyx_k_TA_CDL3LINESTRIKE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3OUTSIDE, __pyx_k_TA_CDL3OUTSIDE, sizeof(__pyx_k_TA_CDL3OUTSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_k_TA_CDL3STARSINSOUTH, sizeof(__pyx_k_TA_CDL3STARSINSOUTH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_k_TA_CDL3WHITESOLDIERS, sizeof(__pyx_k_TA_CDL3WHITESOLDIERS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_k_TA_CDLABANDONEDBABY, sizeof(__pyx_k_TA_CDLABANDONEDBABY), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_k_TA_CDLADVANCEBLOCK, sizeof(__pyx_k_TA_CDLADVANCEBLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLBELTHOLD, __pyx_k_TA_CDLBELTHOLD, sizeof(__pyx_k_TA_CDLBELTHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLBREAKAWAY, __pyx_k_TA_CDLBREAKAWAY, sizeof(__pyx_k_TA_CDLBREAKAWAY), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_k_TA_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_TA_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_k_TA_CDLCONCEALBABYSWALL, sizeof(__pyx_k_TA_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_k_TA_CDLCOUNTERATTACK, sizeof(__pyx_k_TA_CDLCOUNTERATTACK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_k_TA_CDLDARKCLOUDCOVER, sizeof(__pyx_k_TA_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDOJI, __pyx_k_TA_CDLDOJI, sizeof(__pyx_k_TA_CDLDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDOJISTAR, __pyx_k_TA_CDLDOJISTAR, sizeof(__pyx_k_TA_CDLDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_k_TA_CDLDRAGONFLYDOJI, sizeof(__pyx_k_TA_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLENGULFING, __pyx_k_TA_CDLENGULFING, sizeof(__pyx_k_TA_CDLENGULFING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_k_TA_CDLEVENINGDOJISTAR, sizeof(__pyx_k_TA_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_k_TA_CDLEVENINGSTAR, sizeof(__pyx_k_TA_CDLEVENINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_k_TA_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_TA_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_k_TA_CDLGRAVESTONEDOJI, sizeof(__pyx_k_TA_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHAMMER, __pyx_k_TA_CDLHAMMER, sizeof(__pyx_k_TA_CDLHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHANGINGMAN, __pyx_k_TA_CDLHANGINGMAN, sizeof(__pyx_k_TA_CDLHANGINGMAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHARAMI, __pyx_k_TA_CDLHARAMI, sizeof(__pyx_k_TA_CDLHARAMI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHARAMICROSS, __pyx_k_TA_CDLHARAMICROSS, sizeof(__pyx_k_TA_CDLHARAMICROSS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIGHWAVE, __pyx_k_TA_CDLHIGHWAVE, sizeof(__pyx_k_TA_CDLHIGHWAVE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIKKAKE, __pyx_k_TA_CDLHIKKAKE, sizeof(__pyx_k_TA_CDLHIKKAKE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_k_TA_CDLHIKKAKEMOD, sizeof(__pyx_k_TA_CDLHIKKAKEMOD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_k_TA_CDLHOMINGPIGEON, sizeof(__pyx_k_TA_CDLHOMINGPIGEON), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_k_TA_CDLIDENTICAL3CROWS, sizeof(__pyx_k_TA_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLINNECK, __pyx_k_TA_CDLINNECK, sizeof(__pyx_k_TA_CDLINNECK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_k_TA_CDLINVERTEDHAMMER, sizeof(__pyx_k_TA_CDLINVERTEDHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLKICKING, __pyx_k_TA_CDLKICKING, sizeof(__pyx_k_TA_CDLKICKING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_k_TA_CDLKICKINGBYLENGTH, sizeof(__pyx_k_TA_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_k_TA_CDLLADDERBOTTOM, sizeof(__pyx_k_TA_CDLLADDERBOTTOM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_k_TA_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_TA_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLONGLINE, __pyx_k_TA_CDLLONGLINE, sizeof(__pyx_k_TA_CDLLONGLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMARUBOZU, __pyx_k_TA_CDLMARUBOZU, sizeof(__pyx_k_TA_CDLMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_k_TA_CDLMATCHINGLOW, sizeof(__pyx_k_TA_CDLMATCHINGLOW), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMATHOLD, __pyx_k_TA_CDLMATHOLD, sizeof(__pyx_k_TA_CDLMATHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_k_TA_CDLMORNINGDOJISTAR, sizeof(__pyx_k_TA_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_k_TA_CDLMORNINGSTAR, sizeof(__pyx_k_TA_CDLMORNINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLONNECK, __pyx_k_TA_CDLONNECK, sizeof(__pyx_k_TA_CDLONNECK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLPIERCING, __pyx_k_TA_CDLPIERCING, sizeof(__pyx_k_TA_CDLPIERCING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_k_TA_CDLRICKSHAWMAN, sizeof(__pyx_k_TA_CDLRICKSHAWMAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_k_TA_CDLRISEFALL3METHODS, sizeof(__pyx_k_TA_CDLRISEFALL3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_k_TA_CDLSEPARATINGLINES, sizeof(__pyx_k_TA_CDLSEPARATINGLINES), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_k_TA_CDLSHOOTINGSTAR, sizeof(__pyx_k_TA_CDLSHOOTINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSHORTLINE, __pyx_k_TA_CDLSHORTLINE, sizeof(__pyx_k_TA_CDLSHORTLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_k_TA_CDLSPINNINGTOP, sizeof(__pyx_k_TA_CDLSPINNINGTOP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_k_TA_CDLSTALLEDPATTERN, sizeof(__pyx_k_TA_CDLSTALLEDPATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_k_TA_CDLSTICKSANDWICH, sizeof(__pyx_k_TA_CDLSTICKSANDWICH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTAKURI, __pyx_k_TA_CDLTAKURI, sizeof(__pyx_k_TA_CDLTAKURI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTASUKIGAP, __pyx_k_TA_CDLTASUKIGAP, sizeof(__pyx_k_TA_CDLTASUKIGAP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTHRUSTING, __pyx_k_TA_CDLTHRUSTING, sizeof(__pyx_k_TA_CDLTHRUSTING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTRISTAR, __pyx_k_TA_CDLTRISTAR, sizeof(__pyx_k_TA_CDLTRISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_k_TA_CDLUNIQUE3RIVER, sizeof(__pyx_k_TA_CDLUNIQUE3RIVER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_k_TA_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_TA_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_k_TA_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_TA_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CEIL, __pyx_k_TA_CEIL, sizeof(__pyx_k_TA_CEIL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CMO, __pyx_k_TA_CMO, sizeof(__pyx_k_TA_CMO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CORREL, __pyx_k_TA_CORREL, sizeof(__pyx_k_TA_CORREL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_COS, __pyx_k_TA_COS, sizeof(__pyx_k_TA_COS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_COSH, __pyx_k_TA_COSH, sizeof(__pyx_k_TA_COSH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DEMA, __pyx_k_TA_DEMA, sizeof(__pyx_k_TA_DEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DIV, __pyx_k_TA_DIV, sizeof(__pyx_k_TA_DIV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DX, __pyx_k_TA_DX, sizeof(__pyx_k_TA_DX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_EMA, __pyx_k_TA_EMA, sizeof(__pyx_k_TA_EMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_EXP, __pyx_k_TA_EXP, sizeof(__pyx_k_TA_EXP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FLOOR, __pyx_k_TA_FLOOR, sizeof(__pyx_k_TA_FLOOR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FUNCTION_NAMES, __pyx_k_TA_FUNCTION_NAMES, sizeof(__pyx_k_TA_FUNCTION_NAMES), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FUNC_FLAGS, __pyx_k_TA_FUNC_FLAGS, sizeof(__pyx_k_TA_FUNC_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FuncTableAlloc, __pyx_k_TA_FuncTableAlloc, sizeof(__pyx_k_TA_FuncTableAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FuncTableFree, __pyx_k_TA_FuncTableFree, sizeof(__pyx_k_TA_FuncTableFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetFuncHandle, __pyx_k_TA_GetFuncHandle, sizeof(__pyx_k_TA_GetFuncHandle), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetFuncInfo, __pyx_k_TA_GetFuncInfo, sizeof(__pyx_k_TA_GetFuncInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetInputParameterInfo, __pyx_k_TA_GetInputParameterInfo, sizeof(__pyx_k_TA_GetInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetLookback, __pyx_k_TA_GetLookback, sizeof(__pyx_k_TA_GetLookback), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_k_TA_GetOptInputParameterInfo, sizeof(__pyx_k_TA_GetOptInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetOutputParameterInfo, __pyx_k_TA_GetOutputParameterInfo, sizeof(__pyx_k_TA_GetOutputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GroupTableAlloc, __pyx_k_TA_GroupTableAlloc, sizeof(__pyx_k_TA_GroupTableAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GroupTableFree, __pyx_k_TA_GroupTableFree, sizeof(__pyx_k_TA_GroupTableFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_DCPERIOD, __pyx_k_TA_HT_DCPERIOD, sizeof(__pyx_k_TA_HT_DCPERIOD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_DCPHASE, __pyx_k_TA_HT_DCPHASE, sizeof(__pyx_k_TA_HT_DCPHASE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_PHASOR, __pyx_k_TA_HT_PHASOR, sizeof(__pyx_k_TA_HT_PHASOR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_SINE, __pyx_k_TA_HT_SINE, sizeof(__pyx_k_TA_HT_SINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_TRENDLINE, __pyx_k_TA_HT_TRENDLINE, sizeof(__pyx_k_TA_HT_TRENDLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_TRENDMODE, __pyx_k_TA_HT_TRENDMODE, sizeof(__pyx_k_TA_HT_TRENDMODE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_INPUT_FLAGS, __pyx_k_TA_INPUT_FLAGS, sizeof(__pyx_k_TA_INPUT_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_Initialize, __pyx_k_TA_Initialize, sizeof(__pyx_k_TA_Initialize), 0, 0, 1, 1}, + {&__pyx_n_s_TA_KAMA, __pyx_k_TA_KAMA, sizeof(__pyx_k_TA_KAMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG, __pyx_k_TA_LINEARREG, sizeof(__pyx_k_TA_LINEARREG), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_k_TA_LINEARREG_ANGLE, sizeof(__pyx_k_TA_LINEARREG_ANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_k_TA_LINEARREG_INTERCEPT, sizeof(__pyx_k_TA_LINEARREG_INTERCEPT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_k_TA_LINEARREG_SLOPE, sizeof(__pyx_k_TA_LINEARREG_SLOPE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LN, __pyx_k_TA_LN, sizeof(__pyx_k_TA_LN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LOG10, __pyx_k_TA_LOG10, sizeof(__pyx_k_TA_LOG10), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MA, __pyx_k_TA_MA, sizeof(__pyx_k_TA_MA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACD, __pyx_k_TA_MACD, sizeof(__pyx_k_TA_MACD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACDEXT, __pyx_k_TA_MACDEXT, sizeof(__pyx_k_TA_MACDEXT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACDFIX, __pyx_k_TA_MACDFIX, sizeof(__pyx_k_TA_MACDFIX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAMA, __pyx_k_TA_MAMA, sizeof(__pyx_k_TA_MAMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAVP, __pyx_k_TA_MAVP, sizeof(__pyx_k_TA_MAVP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAX, __pyx_k_TA_MAX, sizeof(__pyx_k_TA_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAXINDEX, __pyx_k_TA_MAXINDEX, sizeof(__pyx_k_TA_MAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MEDPRICE, __pyx_k_TA_MEDPRICE, sizeof(__pyx_k_TA_MEDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MFI, __pyx_k_TA_MFI, sizeof(__pyx_k_TA_MFI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIDPOINT, __pyx_k_TA_MIDPOINT, sizeof(__pyx_k_TA_MIDPOINT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIDPRICE, __pyx_k_TA_MIDPRICE, sizeof(__pyx_k_TA_MIDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIN, __pyx_k_TA_MIN, sizeof(__pyx_k_TA_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MININDEX, __pyx_k_TA_MININDEX, sizeof(__pyx_k_TA_MININDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINMAX, __pyx_k_TA_MINMAX, sizeof(__pyx_k_TA_MINMAX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINMAXINDEX, __pyx_k_TA_MINMAXINDEX, sizeof(__pyx_k_TA_MINMAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINUS_DI, __pyx_k_TA_MINUS_DI, sizeof(__pyx_k_TA_MINUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINUS_DM, __pyx_k_TA_MINUS_DM, sizeof(__pyx_k_TA_MINUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MOM, __pyx_k_TA_MOM, sizeof(__pyx_k_TA_MOM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MULT, __pyx_k_TA_MULT, sizeof(__pyx_k_TA_MULT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_NATR, __pyx_k_TA_NATR, sizeof(__pyx_k_TA_NATR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_OBV, __pyx_k_TA_OBV, sizeof(__pyx_k_TA_OBV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_OUTPUT_FLAGS, __pyx_k_TA_OUTPUT_FLAGS, sizeof(__pyx_k_TA_OUTPUT_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PLUS_DI, __pyx_k_TA_PLUS_DI, sizeof(__pyx_k_TA_PLUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PLUS_DM, __pyx_k_TA_PLUS_DM, sizeof(__pyx_k_TA_PLUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PPO, __pyx_k_TA_PPO, sizeof(__pyx_k_TA_PPO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ParamHolderAlloc, __pyx_k_TA_ParamHolderAlloc, sizeof(__pyx_k_TA_ParamHolderAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ParamHolderFree, __pyx_k_TA_ParamHolderFree, sizeof(__pyx_k_TA_ParamHolderFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROC, __pyx_k_TA_ROC, sizeof(__pyx_k_TA_ROC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCP, __pyx_k_TA_ROCP, sizeof(__pyx_k_TA_ROCP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCR, __pyx_k_TA_ROCR, sizeof(__pyx_k_TA_ROCR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCR100, __pyx_k_TA_ROCR100, sizeof(__pyx_k_TA_ROCR100), 0, 0, 1, 1}, + {&__pyx_n_s_TA_RSI, __pyx_k_TA_RSI, sizeof(__pyx_k_TA_RSI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_k_TA_RestoreCandleDefaultSettings, sizeof(__pyx_k_TA_RestoreCandleDefaultSettings), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SAR, __pyx_k_TA_SAR, sizeof(__pyx_k_TA_SAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SAREXT, __pyx_k_TA_SAREXT, sizeof(__pyx_k_TA_SAREXT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SIN, __pyx_k_TA_SIN, sizeof(__pyx_k_TA_SIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SINH, __pyx_k_TA_SINH, sizeof(__pyx_k_TA_SINH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SMA, __pyx_k_TA_SMA, sizeof(__pyx_k_TA_SMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SQRT, __pyx_k_TA_SQRT, sizeof(__pyx_k_TA_SQRT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STDDEV, __pyx_k_TA_STDDEV, sizeof(__pyx_k_TA_STDDEV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCH, __pyx_k_TA_STOCH, sizeof(__pyx_k_TA_STOCH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCHF, __pyx_k_TA_STOCHF, sizeof(__pyx_k_TA_STOCHF), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCHRSI, __pyx_k_TA_STOCHRSI, sizeof(__pyx_k_TA_STOCHRSI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SUB, __pyx_k_TA_SUB, sizeof(__pyx_k_TA_SUB), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SUM, __pyx_k_TA_SUM, sizeof(__pyx_k_TA_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetCandleSettings, __pyx_k_TA_SetCandleSettings, sizeof(__pyx_k_TA_SetCandleSettings), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetCompatibility, __pyx_k_TA_SetCompatibility, sizeof(__pyx_k_TA_SetCompatibility), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetOptInputParamInteger, __pyx_k_TA_SetOptInputParamInteger, sizeof(__pyx_k_TA_SetOptInputParamInteger), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetOptInputParamReal, __pyx_k_TA_SetOptInputParamReal, sizeof(__pyx_k_TA_SetOptInputParamReal), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetUnstablePeriod, __pyx_k_TA_SetUnstablePeriod, sizeof(__pyx_k_TA_SetUnstablePeriod), 0, 0, 1, 1}, + {&__pyx_n_s_TA_Shutdown, __pyx_k_TA_Shutdown, sizeof(__pyx_k_TA_Shutdown), 0, 0, 1, 1}, + {&__pyx_n_s_TA_T3, __pyx_k_TA_T3, sizeof(__pyx_k_TA_T3), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TAN, __pyx_k_TA_TAN, sizeof(__pyx_k_TA_TAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TANH, __pyx_k_TA_TANH, sizeof(__pyx_k_TA_TANH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TEMA, __pyx_k_TA_TEMA, sizeof(__pyx_k_TA_TEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRANGE, __pyx_k_TA_TRANGE, sizeof(__pyx_k_TA_TRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRIMA, __pyx_k_TA_TRIMA, sizeof(__pyx_k_TA_TRIMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRIX, __pyx_k_TA_TRIX, sizeof(__pyx_k_TA_TRIX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TSF, __pyx_k_TA_TSF, sizeof(__pyx_k_TA_TSF), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TYPPRICE, __pyx_k_TA_TYPPRICE, sizeof(__pyx_k_TA_TYPPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ULTOSC, __pyx_k_TA_ULTOSC, sizeof(__pyx_k_TA_ULTOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_VAR, __pyx_k_TA_VAR, sizeof(__pyx_k_TA_VAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WCLPRICE, __pyx_k_TA_WCLPRICE, sizeof(__pyx_k_TA_WCLPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WILLR, __pyx_k_TA_WILLR, sizeof(__pyx_k_TA_WILLR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WMA, __pyx_k_TA_WMA, sizeof(__pyx_k_TA_WMA), 0, 0, 1, 1}, + {&__pyx_n_s_TEMA, __pyx_k_TEMA, sizeof(__pyx_k_TEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TRANGE, __pyx_k_TRANGE, sizeof(__pyx_k_TRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_TRIMA, __pyx_k_TRIMA, sizeof(__pyx_k_TRIMA), 0, 0, 1, 1}, + {&__pyx_n_s_TRIX, __pyx_k_TRIX, sizeof(__pyx_k_TRIX), 0, 0, 1, 1}, + {&__pyx_n_s_TSF, __pyx_k_TSF, sizeof(__pyx_k_TSF), 0, 0, 1, 1}, + {&__pyx_n_s_TYPPRICE, __pyx_k_TYPPRICE, sizeof(__pyx_k_TYPPRICE), 0, 0, 1, 1}, + {&__pyx_kp_s_This_is_a_pythonic_wrapper_arou, __pyx_k_This_is_a_pythonic_wrapper_arou, sizeof(__pyx_k_This_is_a_pythonic_wrapper_arou), 0, 0, 1, 0}, + {&__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_k_Too_many_price_arguments_expecte, sizeof(__pyx_k_Too_many_price_arguments_expecte), 0, 0, 1, 0}, + {&__pyx_kp_s_Triangular_Moving_Average, __pyx_k_Triangular_Moving_Average, sizeof(__pyx_k_Triangular_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s_Triple_Exponential_Moving_Averag, __pyx_k_Triple_Exponential_Moving_Averag, sizeof(__pyx_k_Triple_Exponential_Moving_Averag), 0, 0, 1, 0}, + {&__pyx_kp_s_Triple_Generalized_Double_Expone, __pyx_k_Triple_Generalized_Double_Expone, sizeof(__pyx_k_Triple_Generalized_Double_Expone), 0, 0, 1, 0}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_ULTOSC, __pyx_k_ULTOSC, sizeof(__pyx_k_ULTOSC), 0, 0, 1, 1}, + {&__pyx_kp_s_Unknown_Error, __pyx_k_Unknown_Error, sizeof(__pyx_k_Unknown_Error), 0, 0, 1, 0}, + {&__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR, __pyx_k_Unknown_Error_TA_UNKNOWN_ERR, sizeof(__pyx_k_Unknown_Error_TA_UNKNOWN_ERR), 0, 0, 1, 0}, + {&__pyx_n_s_VAR, __pyx_k_VAR, sizeof(__pyx_k_VAR), 0, 0, 1, 1}, + {&__pyx_kp_s_Values_represent_a_lower_limit, __pyx_k_Values_represent_a_lower_limit, sizeof(__pyx_k_Values_represent_a_lower_limit), 0, 0, 1, 0}, + {&__pyx_kp_s_Values_represent_an_upper_limit, __pyx_k_Values_represent_an_upper_limit, sizeof(__pyx_k_Values_represent_an_upper_limit), 0, 0, 1, 0}, + {&__pyx_n_s_WCLPRICE, __pyx_k_WCLPRICE, sizeof(__pyx_k_WCLPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_WILLR, __pyx_k_WILLR, sizeof(__pyx_k_WILLR), 0, 0, 1, 1}, + {&__pyx_n_s_WMA, __pyx_k_WMA, sizeof(__pyx_k_WMA), 0, 0, 1, 1}, + {&__pyx_kp_s_Weighted_Moving_Average, __pyx_k_Weighted_Moving_Average, sizeof(__pyx_k_Weighted_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, + {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0}, + {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0}, + {&__pyx_n_s__240, __pyx_k__240, sizeof(__pyx_k__240), 0, 0, 1, 1}, + {&__pyx_n_s__307, __pyx_k__307, sizeof(__pyx_k__307), 0, 0, 1, 1}, + {&__pyx_kp_u__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 1, 0, 0}, + {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0}, + {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, + {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, + {&__pyx_n_s_acceleration, __pyx_k_acceleration, sizeof(__pyx_k_acceleration), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationinitlong, __pyx_k_accelerationinitlong, sizeof(__pyx_k_accelerationinitlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationinitshort, __pyx_k_accelerationinitshort, sizeof(__pyx_k_accelerationinitshort), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationlong, __pyx_k_accelerationlong, sizeof(__pyx_k_accelerationlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationmaxlong, __pyx_k_accelerationmaxlong, sizeof(__pyx_k_accelerationmaxlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationmaxshort, __pyx_k_accelerationmaxshort, sizeof(__pyx_k_accelerationmaxshort), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationshort, __pyx_k_accelerationshort, sizeof(__pyx_k_accelerationshort), 0, 0, 1, 1}, + {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, + {&__pyx_kp_s_any_ndarray, __pyx_k_any_ndarray, sizeof(__pyx_k_any_ndarray), 0, 0, 1, 0}, + {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, + {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1}, + {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, + {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1}, + {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, + {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, + {&__pyx_n_s_avgperiod, __pyx_k_avgperiod, sizeof(__pyx_k_avgperiod), 0, 0, 1, 1}, + {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, + {&__pyx_n_s_begidx, __pyx_k_begidx, sizeof(__pyx_k_begidx), 0, 0, 1, 1}, + {&__pyx_n_s_bytes2str, __pyx_k_bytes2str, sizeof(__pyx_k_bytes2str), 0, 0, 1, 1}, + {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, + {&__pyx_n_s_call_function, __pyx_k_call_function, sizeof(__pyx_k_call_function), 0, 0, 1, 1}, + {&__pyx_n_s_check_opt_input_value, __pyx_k_check_opt_input_value, sizeof(__pyx_k_check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, + {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, + {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1}, + {&__pyx_n_s_column_stack, __pyx_k_column_stack, sizeof(__pyx_k_column_stack), 0, 0, 1, 1}, + {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1}, + {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, + {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, + {&__pyx_n_s_default_value, __pyx_k_default_value, sizeof(__pyx_k_default_value), 0, 0, 1, 1}, + {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_display_name, __pyx_k_display_name, sizeof(__pyx_k_display_name), 0, 0, 1, 1}, + {&__pyx_kp_s_display_name_s_group_s, __pyx_k_display_name_s_group_s, sizeof(__pyx_k_display_name_s_group_s), 0, 0, 1, 0}, + {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, + {&__pyx_n_s_docs, __pyx_k_docs, sizeof(__pyx_k_docs), 0, 0, 1, 1}, + {&__pyx_n_s_documentation, __pyx_k_documentation, sizeof(__pyx_k_documentation), 0, 0, 1, 1}, + {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, + {&__pyx_n_s_endidx, __pyx_k_endidx, sizeof(__pyx_k_endidx), 0, 0, 1, 1}, + {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, + {&__pyx_n_s_factor, __pyx_k_factor, sizeof(__pyx_k_factor), 0, 0, 1, 1}, + {&__pyx_n_s_fastd_matype, __pyx_k_fastd_matype, sizeof(__pyx_k_fastd_matype), 0, 0, 1, 1}, + {&__pyx_n_s_fastd_period, __pyx_k_fastd_period, sizeof(__pyx_k_fastd_period), 0, 0, 1, 1}, + {&__pyx_n_s_fastk_period, __pyx_k_fastk_period, sizeof(__pyx_k_fastk_period), 0, 0, 1, 1}, + {&__pyx_n_s_fastlimit, __pyx_k_fastlimit, sizeof(__pyx_k_fastlimit), 0, 0, 1, 1}, + {&__pyx_n_s_fastmatype, __pyx_k_fastmatype, sizeof(__pyx_k_fastmatype), 0, 0, 1, 1}, + {&__pyx_n_s_fastperiod, __pyx_k_fastperiod, sizeof(__pyx_k_fastperiod), 0, 0, 1, 1}, + {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1}, + {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, + {&__pyx_n_s_flags_lookup_dict, __pyx_k_flags_lookup_dict, sizeof(__pyx_k_flags_lookup_dict), 0, 0, 1, 1}, + {&__pyx_n_s_func_args, __pyx_k_func_args, sizeof(__pyx_k_func_args), 0, 0, 1, 1}, + {&__pyx_n_s_func_info, __pyx_k_func_info, sizeof(__pyx_k_func_info), 0, 0, 1, 1}, + {&__pyx_n_s_func_line, __pyx_k_func_line, sizeof(__pyx_k_func_line), 0, 0, 1, 1}, + {&__pyx_n_s_func_object, __pyx_k_func_object, sizeof(__pyx_k_func_object), 0, 0, 1, 1}, + {&__pyx_n_s_function_flags, __pyx_k_function_flags, sizeof(__pyx_k_function_flags), 0, 0, 1, 1}, + {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1}, + {&__pyx_n_s_functions, __pyx_k_functions, sizeof(__pyx_k_functions), 0, 0, 1, 1}, + {&__pyx_n_s_get_defaults_and_docs, __pyx_k_get_defaults_and_docs, sizeof(__pyx_k_get_defaults_and_docs), 0, 0, 1, 1}, + {&__pyx_n_s_get_flags, __pyx_k_get_flags, sizeof(__pyx_k_get_flags), 0, 0, 1, 1}, + {&__pyx_n_s_get_input_arrays, __pyx_k_get_input_arrays, sizeof(__pyx_k_get_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_get_input_names, __pyx_k_get_input_names, sizeof(__pyx_k_get_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_get_opt_input_value, __pyx_k_get_opt_input_value, sizeof(__pyx_k_get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_get_parameters, __pyx_k_get_parameters, sizeof(__pyx_k_get_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1}, + {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1}, + {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, + {&__pyx_n_s_help, __pyx_k_help, sizeof(__pyx_k_help), 0, 0, 1, 1}, + {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1}, + {&__pyx_n_s_holder, __pyx_k_holder, sizeof(__pyx_k_holder), 0, 0, 1, 1}, + {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, + {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, + {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_n_s_import_error, __pyx_k_import_error, sizeof(__pyx_k_import_error), 0, 0, 1, 1}, + {&__pyx_n_s_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 0, 1, 1}, + {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, + {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, + {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, + {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, + {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, + {&__pyx_kp_s_input_array_has_wrong_dimensions, __pyx_k_input_array_has_wrong_dimensions, sizeof(__pyx_k_input_array_has_wrong_dimensions), 0, 0, 1, 0}, + {&__pyx_kp_s_input_array_lengths_are_differen, __pyx_k_input_array_lengths_are_differen, sizeof(__pyx_k_input_array_lengths_are_differen), 0, 0, 1, 0}, + {&__pyx_kp_s_input_array_type_is_not_double, __pyx_k_input_array_type_is_not_double, sizeof(__pyx_k_input_array_type_is_not_double), 0, 0, 1, 0}, + {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1}, + {&__pyx_kp_s_input_arrays_2, __pyx_k_input_arrays_2, sizeof(__pyx_k_input_arrays_2), 0, 0, 1, 0}, + {&__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_k_input_arrays_parameter_missing_r, sizeof(__pyx_k_input_arrays_parameter_missing_r), 0, 0, 1, 0}, + {&__pyx_n_s_input_name, __pyx_k_input_name, sizeof(__pyx_k_input_name), 0, 0, 1, 1}, + {&__pyx_n_s_input_names, __pyx_k_input_names, sizeof(__pyx_k_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_input_price_series_names, __pyx_k_input_price_series_names, sizeof(__pyx_k_input_price_series_names), 0, 0, 1, 1}, + {&__pyx_n_s_input_price_series_names_2, __pyx_k_input_price_series_names_2, sizeof(__pyx_k_input_price_series_names_2), 0, 0, 1, 1}, + {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1}, + {&__pyx_kp_s_integer_values_are_100_0_or_100, __pyx_k_integer_values_are_100_0_or_100, sizeof(__pyx_k_integer_values_are_100_0_or_100), 0, 0, 1, 0}, + {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, + {&__pyx_n_s_is_empty, __pyx_k_is_empty, sizeof(__pyx_k_is_empty), 0, 0, 1, 1}, + {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, + {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, + {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, + {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, + {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, + {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, + {&__pyx_n_s_local, __pyx_k_local, sizeof(__pyx_k_local), 0, 0, 1, 1}, + {&__pyx_n_s_local_2, __pyx_k_local_2, sizeof(__pyx_k_local_2), 0, 0, 1, 1}, + {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, + {&__pyx_n_s_lookback, __pyx_k_lookback, sizeof(__pyx_k_lookback), 0, 0, 1, 1}, + {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1}, + {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1}, + {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, + {&__pyx_n_s_matype, __pyx_k_matype, sizeof(__pyx_k_matype), 0, 0, 1, 1}, + {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, + {&__pyx_n_s_max_int, __pyx_k_max_int, sizeof(__pyx_k_max_int), 0, 0, 1, 1}, + {&__pyx_n_s_maximum, __pyx_k_maximum, sizeof(__pyx_k_maximum), 0, 0, 1, 1}, + {&__pyx_n_s_maxperiod, __pyx_k_maxperiod, sizeof(__pyx_k_maxperiod), 0, 0, 1, 1}, + {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, + {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1}, + {&__pyx_n_s_min_int, __pyx_k_min_int, sizeof(__pyx_k_min_int), 0, 0, 1, 1}, + {&__pyx_n_s_minperiod, __pyx_k_minperiod, sizeof(__pyx_k_minperiod), 0, 0, 1, 1}, + {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1}, + {&__pyx_n_s_missing_keys, __pyx_k_missing_keys, sizeof(__pyx_k_missing_keys), 0, 0, 1, 1}, + {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, + {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1}, + {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, + {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 0, 1, 1}, + {&__pyx_n_s_nbdev, __pyx_k_nbdev, sizeof(__pyx_k_nbdev), 0, 0, 1, 1}, + {&__pyx_n_s_nbdevdn, __pyx_k_nbdevdn, sizeof(__pyx_k_nbdevdn), 0, 0, 1, 1}, + {&__pyx_n_s_nbdevup, __pyx_k_nbdevup, sizeof(__pyx_k_nbdevup), 0, 0, 1, 1}, + {&__pyx_n_s_no_existing_input_arrays, __pyx_k_no_existing_input_arrays, sizeof(__pyx_k_no_existing_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_num_inputs, __pyx_k_num_inputs, sizeof(__pyx_k_num_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_num_opt_inputs, __pyx_k_num_opt_inputs, sizeof(__pyx_k_num_opt_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, + {&__pyx_kp_s_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 0, 1, 0}, + {&__pyx_kp_s_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 0, 1, 0}, + {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, + {&__pyx_n_s_offsetonreverse, __pyx_k_offsetonreverse, sizeof(__pyx_k_offsetonreverse), 0, 0, 1, 1}, + {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, + {&__pyx_n_s_openInterest, __pyx_k_openInterest, sizeof(__pyx_k_openInterest), 0, 0, 1, 1}, + {&__pyx_n_s_optIn, __pyx_k_optIn, sizeof(__pyx_k_optIn), 0, 0, 1, 1}, + {&__pyx_n_s_opt_input, __pyx_k_opt_input, sizeof(__pyx_k_opt_input), 0, 0, 1, 1}, + {&__pyx_n_s_opt_input_values, __pyx_k_opt_input_values, sizeof(__pyx_k_opt_input_values), 0, 0, 1, 1}, + {&__pyx_n_s_opt_inputs, __pyx_k_opt_inputs, sizeof(__pyx_k_opt_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_ordereddict, __pyx_k_ordereddict, sizeof(__pyx_k_ordereddict), 0, 0, 1, 1}, + {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1}, + {&__pyx_n_s_outaroondown, __pyx_k_outaroondown, sizeof(__pyx_k_outaroondown), 0, 0, 1, 1}, + {&__pyx_n_s_outaroonup, __pyx_k_outaroonup, sizeof(__pyx_k_outaroonup), 0, 0, 1, 1}, + {&__pyx_n_s_outbegidx, __pyx_k_outbegidx, sizeof(__pyx_k_outbegidx), 0, 0, 1, 1}, + {&__pyx_n_s_outfama, __pyx_k_outfama, sizeof(__pyx_k_outfama), 0, 0, 1, 1}, + {&__pyx_n_s_outfastd, __pyx_k_outfastd, sizeof(__pyx_k_outfastd), 0, 0, 1, 1}, + {&__pyx_n_s_outfastk, __pyx_k_outfastk, sizeof(__pyx_k_outfastk), 0, 0, 1, 1}, + {&__pyx_n_s_outinphase, __pyx_k_outinphase, sizeof(__pyx_k_outinphase), 0, 0, 1, 1}, + {&__pyx_n_s_outinteger, __pyx_k_outinteger, sizeof(__pyx_k_outinteger), 0, 0, 1, 1}, + {&__pyx_n_s_outinteger_data, __pyx_k_outinteger_data, sizeof(__pyx_k_outinteger_data), 0, 0, 1, 1}, + {&__pyx_n_s_outleadsine, __pyx_k_outleadsine, sizeof(__pyx_k_outleadsine), 0, 0, 1, 1}, + {&__pyx_n_s_outmacd, __pyx_k_outmacd, sizeof(__pyx_k_outmacd), 0, 0, 1, 1}, + {&__pyx_n_s_outmacdhist, __pyx_k_outmacdhist, sizeof(__pyx_k_outmacdhist), 0, 0, 1, 1}, + {&__pyx_n_s_outmacdsignal, __pyx_k_outmacdsignal, sizeof(__pyx_k_outmacdsignal), 0, 0, 1, 1}, + {&__pyx_n_s_outmama, __pyx_k_outmama, sizeof(__pyx_k_outmama), 0, 0, 1, 1}, + {&__pyx_n_s_outmax, __pyx_k_outmax, sizeof(__pyx_k_outmax), 0, 0, 1, 1}, + {&__pyx_n_s_outmaxidx, __pyx_k_outmaxidx, sizeof(__pyx_k_outmaxidx), 0, 0, 1, 1}, + {&__pyx_n_s_outmaxidx_data, __pyx_k_outmaxidx_data, sizeof(__pyx_k_outmaxidx_data), 0, 0, 1, 1}, + {&__pyx_n_s_outmin, __pyx_k_outmin, sizeof(__pyx_k_outmin), 0, 0, 1, 1}, + {&__pyx_n_s_outminidx, __pyx_k_outminidx, sizeof(__pyx_k_outminidx), 0, 0, 1, 1}, + {&__pyx_n_s_outminidx_data, __pyx_k_outminidx_data, sizeof(__pyx_k_outminidx_data), 0, 0, 1, 1}, + {&__pyx_n_s_outnbelement, __pyx_k_outnbelement, sizeof(__pyx_k_outnbelement), 0, 0, 1, 1}, + {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, + {&__pyx_n_s_output_flags, __pyx_k_output_flags, sizeof(__pyx_k_output_flags), 0, 0, 1, 1}, + {&__pyx_n_s_output_name, __pyx_k_output_name, sizeof(__pyx_k_output_name), 0, 0, 1, 1}, + {&__pyx_n_s_output_names, __pyx_k_output_names, sizeof(__pyx_k_output_names), 0, 0, 1, 1}, + {&__pyx_n_s_outputs, __pyx_k_outputs, sizeof(__pyx_k_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_outputs_valid, __pyx_k_outputs_valid, sizeof(__pyx_k_outputs_valid), 0, 0, 1, 1}, + {&__pyx_n_s_outquadrature, __pyx_k_outquadrature, sizeof(__pyx_k_outquadrature), 0, 0, 1, 1}, + {&__pyx_n_s_outreal, __pyx_k_outreal, sizeof(__pyx_k_outreal), 0, 0, 1, 1}, + {&__pyx_n_s_outreallowerband, __pyx_k_outreallowerband, sizeof(__pyx_k_outreallowerband), 0, 0, 1, 1}, + {&__pyx_n_s_outrealmiddleband, __pyx_k_outrealmiddleband, sizeof(__pyx_k_outrealmiddleband), 0, 0, 1, 1}, + {&__pyx_n_s_outrealupperband, __pyx_k_outrealupperband, sizeof(__pyx_k_outrealupperband), 0, 0, 1, 1}, + {&__pyx_n_s_outsine, __pyx_k_outsine, sizeof(__pyx_k_outsine), 0, 0, 1, 1}, + {&__pyx_n_s_outslowd, __pyx_k_outslowd, sizeof(__pyx_k_outslowd), 0, 0, 1, 1}, + {&__pyx_n_s_outslowk, __pyx_k_outslowk, sizeof(__pyx_k_outslowk), 0, 0, 1, 1}, + {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1}, + {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1}, + {&__pyx_n_s_param_name, __pyx_k_param_name, sizeof(__pyx_k_param_name), 0, 0, 1, 1}, + {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 0, 1, 1}, + {&__pyx_n_s_penetration, __pyx_k_penetration, sizeof(__pyx_k_penetration), 0, 0, 1, 1}, + {&__pyx_n_s_period, __pyx_k_period, sizeof(__pyx_k_period), 0, 0, 1, 1}, + {&__pyx_n_s_periods, __pyx_k_periods, sizeof(__pyx_k_periods), 0, 0, 1, 1}, + {&__pyx_n_s_polars, __pyx_k_polars, sizeof(__pyx_k_polars), 0, 0, 1, 1}, + {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, + {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, + {&__pyx_n_s_price, __pyx_k_price, sizeof(__pyx_k_price), 0, 0, 1, 1}, + {&__pyx_n_s_price0, __pyx_k_price0, sizeof(__pyx_k_price0), 0, 0, 1, 1}, + {&__pyx_n_s_price1, __pyx_k_price1, sizeof(__pyx_k_price1), 0, 0, 1, 1}, + {&__pyx_n_s_price_series, __pyx_k_price_series, sizeof(__pyx_k_price_series), 0, 0, 1, 1}, + {&__pyx_n_s_price_series_name_values, __pyx_k_price_series_name_values, sizeof(__pyx_k_price_series_name_values), 0, 0, 1, 1}, + {&__pyx_n_s_prices, __pyx_k_prices, sizeof(__pyx_k_prices), 0, 0, 1, 1}, + {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1}, + {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_rangetype, __pyx_k_rangetype, sizeof(__pyx_k_rangetype), 0, 0, 1, 1}, + {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1}, + {&__pyx_n_s_real0, __pyx_k_real0, sizeof(__pyx_k_real0), 0, 0, 1, 1}, + {&__pyx_n_s_real1, __pyx_k_real1, sizeof(__pyx_k_real1), 0, 0, 1, 1}, + {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, + {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1}, + {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, + {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, + {&__pyx_n_s_retCode, __pyx_k_retCode, sizeof(__pyx_k_retCode), 0, 0, 1, 1}, + {&__pyx_n_s_ret_code, __pyx_k_ret_code, sizeof(__pyx_k_ret_code), 0, 0, 1, 1}, + {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, + {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, + {&__pyx_kp_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 0}, + {&__pyx_kp_s_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 0, 1, 0}, + {&__pyx_kp_s_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 0, 1, 0}, + {&__pyx_kp_s_s_function_failed_with_error_co, __pyx_k_s_function_failed_with_error_co, sizeof(__pyx_k_s_function_failed_with_error_co), 0, 0, 1, 0}, + {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0}, + {&__pyx_kp_s_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 0, 1, 0}, + {&__pyx_n_s_schema, __pyx_k_schema, sizeof(__pyx_k_schema), 0, 0, 1, 1}, + {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, + {&__pyx_n_s_series, __pyx_k_series, sizeof(__pyx_k_series), 0, 0, 1, 1}, + {&__pyx_n_s_set_function_args, __pyx_k_set_function_args, sizeof(__pyx_k_set_function_args), 0, 0, 1, 1}, + {&__pyx_n_s_set_input_arrays, __pyx_k_set_input_arrays, sizeof(__pyx_k_set_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_set_input_names, __pyx_k_set_input_names, sizeof(__pyx_k_set_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, + {&__pyx_n_s_set_parameters, __pyx_k_set_parameters, sizeof(__pyx_k_set_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_settingtype, __pyx_k_settingtype, sizeof(__pyx_k_settingtype), 0, 0, 1, 1}, + {&__pyx_n_s_signalmatype, __pyx_k_signalmatype, sizeof(__pyx_k_signalmatype), 0, 0, 1, 1}, + {&__pyx_n_s_signalperiod, __pyx_k_signalperiod, sizeof(__pyx_k_signalperiod), 0, 0, 1, 1}, + {&__pyx_n_s_skip_first, __pyx_k_skip_first, sizeof(__pyx_k_skip_first), 0, 0, 1, 1}, + {&__pyx_n_s_slowd_matype, __pyx_k_slowd_matype, sizeof(__pyx_k_slowd_matype), 0, 0, 1, 1}, + {&__pyx_n_s_slowd_period, __pyx_k_slowd_period, sizeof(__pyx_k_slowd_period), 0, 0, 1, 1}, + {&__pyx_n_s_slowk_matype, __pyx_k_slowk_matype, sizeof(__pyx_k_slowk_matype), 0, 0, 1, 1}, + {&__pyx_n_s_slowk_period, __pyx_k_slowk_period, sizeof(__pyx_k_slowk_period), 0, 0, 1, 1}, + {&__pyx_n_s_slowlimit, __pyx_k_slowlimit, sizeof(__pyx_k_slowlimit), 0, 0, 1, 1}, + {&__pyx_n_s_slowmatype, __pyx_k_slowmatype, sizeof(__pyx_k_slowmatype), 0, 0, 1, 1}, + {&__pyx_n_s_slowperiod, __pyx_k_slowperiod, sizeof(__pyx_k_slowperiod), 0, 0, 1, 1}, + {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, + {&__pyx_n_s_startvalue, __pyx_k_startvalue, sizeof(__pyx_k_startvalue), 0, 0, 1, 1}, + {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1}, + {&__pyx_n_s_str2bytes, __pyx_k_str2bytes, sizeof(__pyx_k_str2bytes), 0, 0, 1, 1}, + {&__pyx_kp_s_stream__s, __pyx_k_stream__s, sizeof(__pyx_k_stream__s), 0, 0, 1, 0}, + {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, + {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, + {&__pyx_n_s_ta_check_success, __pyx_k_ta_check_success, sizeof(__pyx_k_ta_check_success), 0, 0, 1, 1}, + {&__pyx_n_s_ta_func_unst_ids, __pyx_k_ta_func_unst_ids, sizeof(__pyx_k_ta_func_unst_ids), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getFuncInfo, __pyx_k_ta_getFuncInfo, sizeof(__pyx_k_ta_getFuncInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getFuncTable, __pyx_k_ta_getFuncTable, sizeof(__pyx_k_ta_getFuncTable), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getGroupTable, __pyx_k_ta_getGroupTable, sizeof(__pyx_k_ta_getGroupTable), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getInputParameterInfo, __pyx_k_ta_getInputParameterInfo, sizeof(__pyx_k_ta_getInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getOptInputParameterInfo, __pyx_k_ta_getOptInputParameterInfo, sizeof(__pyx_k_ta_getOptInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getOutputParameterInfo, __pyx_k_ta_getOutputParameterInfo, sizeof(__pyx_k_ta_getOutputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_get_compatibility, __pyx_k_ta_get_compatibility, sizeof(__pyx_k_ta_get_compatibility), 0, 0, 1, 1}, + {&__pyx_n_s_ta_get_unstable_period, __pyx_k_ta_get_unstable_period, sizeof(__pyx_k_ta_get_unstable_period), 0, 0, 1, 1}, + {&__pyx_n_s_ta_initialize, __pyx_k_ta_initialize, sizeof(__pyx_k_ta_initialize), 0, 0, 1, 1}, + {&__pyx_n_s_ta_restore_candle_default_setti, __pyx_k_ta_restore_candle_default_setti, sizeof(__pyx_k_ta_restore_candle_default_setti), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_candle_settings, __pyx_k_ta_set_candle_settings, sizeof(__pyx_k_ta_set_candle_settings), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_compatibility, __pyx_k_ta_set_compatibility, sizeof(__pyx_k_ta_set_compatibility), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_unstable_period, __pyx_k_ta_set_unstable_period, sizeof(__pyx_k_ta_set_unstable_period), 0, 0, 1, 1}, + {&__pyx_n_s_ta_shutdown, __pyx_k_ta_shutdown, sizeof(__pyx_k_ta_shutdown), 0, 0, 1, 1}, + {&__pyx_n_s_ta_version, __pyx_k_ta_version, sizeof(__pyx_k_ta_version), 0, 0, 1, 1}, + {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1}, + {&__pyx_kp_s_talib__abstract_pxi, __pyx_k_talib__abstract_pxi, sizeof(__pyx_k_talib__abstract_pxi), 0, 0, 1, 0}, + {&__pyx_kp_s_talib__common_pxi, __pyx_k_talib__common_pxi, sizeof(__pyx_k_talib__common_pxi), 0, 0, 1, 0}, + {&__pyx_kp_s_talib__func_pxi, __pyx_k_talib__func_pxi, sizeof(__pyx_k_talib__func_pxi), 0, 0, 1, 0}, + {&__pyx_n_s_talib__ta_lib, __pyx_k_talib__ta_lib, sizeof(__pyx_k_talib__ta_lib), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1}, + {&__pyx_n_s_timeStamp, __pyx_k_timeStamp, sizeof(__pyx_k_timeStamp), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod, __pyx_k_timeperiod, sizeof(__pyx_k_timeperiod), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod1, __pyx_k_timeperiod1, sizeof(__pyx_k_timeperiod1), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod2, __pyx_k_timeperiod2, sizeof(__pyx_k_timeperiod2), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod3, __pyx_k_timeperiod3, sizeof(__pyx_k_timeperiod3), 0, 0, 1, 1}, + {&__pyx_n_s_to_numpy, __pyx_k_to_numpy, sizeof(__pyx_k_to_numpy), 0, 0, 1, 1}, + {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1}, + {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1}, + {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_n_s_update_info, __pyx_k_update_info, sizeof(__pyx_k_update_info), 0, 0, 1, 1}, + {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1}, + {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, + {&__pyx_n_s_value_range, __pyx_k_value_range, sizeof(__pyx_k_value_range), 0, 0, 1, 1}, + {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, + {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, + {&__pyx_n_s_vfactor, __pyx_k_vfactor, sizeof(__pyx_k_vfactor), 0, 0, 1, 1}, + {&__pyx_n_s_volume, __pyx_k_volume, sizeof(__pyx_k_volume), 0, 0, 1, 1}, + {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} + }; + return __Pyx_InitStrings(__pyx_string_tab); } -/* #### Code section: init_constants ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { - __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; - __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys; - if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(5, 1, __pyx_L1_error); - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_2048 = PyInt_FromLong(2048); if (unlikely(!__pyx_int_2048)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_16777216 = PyInt_FromLong(16777216L); if (unlikely(!__pyx_int_16777216)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_67108864 = PyInt_FromLong(67108864L); if (unlikely(!__pyx_int_67108864)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_134217728 = PyInt_FromLong(134217728L); if (unlikely(!__pyx_int_134217728)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_268435456 = PyInt_FromLong(268435456L); if (unlikely(!__pyx_int_268435456)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(5, 1, __pyx_L1_error) +/* #### Code section: cached_builtins ### */ +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 8, __pyx_L1_error) + __pyx_builtin_NameError = __Pyx_GetBuiltinName(__pyx_n_s_NameError); if (!__pyx_builtin_NameError) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 130, __pyx_L1_error) + #if PY_MAJOR_VERSION >= 3 + __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) + #else + __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) + #endif + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 436, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 440, __pyx_L1_error) + __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_n_s_min); if (!__pyx_builtin_min) __PYX_ERR(1, 598, __pyx_L1_error) + __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(1, 599, __pyx_L1_error) return 0; __pyx_L1_error:; return -1; } -/* #### Code section: init_globals ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - return 0; -} -/* #### Code section: init_module ### */ - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ +/* #### Code section: cached_constants ### */ -static int __Pyx_modinit_global_init_code(void) { +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_umath() except -1: + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(2, 1025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); -static int __Pyx_modinit_function_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 + * _import_umath() + * except Exception: + * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_ufunc() except -1: + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(2, 1031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "talib/_func.pxi":22 + * cdef np.ndarray check_array(np.ndarray real): + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") # <<<<<<<<<<<<<< + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_type_is_not_double); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(3, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); -static int __Pyx_modinit_type_import_code(void) { - __Pyx_RefNannyDeclarations - PyObject *__pyx_t_1 = NULL; - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), - #else - sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject), - #endif - __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(6, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 202, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 202, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 225, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 229, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 238, __pyx_L1_error) - __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 809, __pyx_L1_error) - __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 811, __pyx_L1_error) - __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 813, __pyx_L1_error) - __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 815, __pyx_L1_error) - __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 817, __pyx_L1_error) - __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 819, __pyx_L1_error) - __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 821, __pyx_L1_error) - __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 823, __pyx_L1_error) - __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 825, __pyx_L1_error) - __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 827, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 866, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_RefNannyFinishContext(); - return -1; -} + /* "talib/_func.pxi":24 + * raise Exception("input array type is not double") + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") # <<<<<<<<<<<<<< + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + * real = PyArray_GETCONTIGUOUS(real) + */ + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_wrong_dimensions); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(3, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "talib/_func.pxi":34 + * length = a1.shape[0] + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * return length + * + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_input_array_lengths_are_differen); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(3, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "talib/_abstract.pxi":679 + * name = name[len('in'):].lower() + * if 'real' in name: + * name = name.replace('real', 'price') # <<<<<<<<<<<<<< + * elif 'price' in name: + * name = 'prices' + */ + __pyx_tuple__8 = PyTuple_Pack(2, __pyx_n_s_real, __pyx_n_s_price); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); + /* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ + __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_s_function_name, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_check_success, 6, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 6, __pyx_L1_error) -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib}, - {0, NULL} -}; -#endif + /* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_initialize, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 50, __pyx_L1_error) -#ifdef __cplusplus -namespace { - struct PyModuleDef __pyx_moduledef = - #else - static struct PyModuleDef __pyx_moduledef = - #endif - { - PyModuleDef_HEAD_INIT, - "_ta_lib", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #elif CYTHON_USE_MODULE_STATE - sizeof(__pyx_mstate), /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - #if CYTHON_USE_MODULE_STATE - __pyx_m_traverse, /* m_traverse */ - __pyx_m_clear, /* m_clear */ - NULL /* m_free */ - #else - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ - #endif - }; - #ifdef __cplusplus -} /* anonymous namespace */ -#endif -#endif + /* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_shutdown, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 55, __pyx_L1_error) -#ifndef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#elif PY_MAJOR_VERSION < 3 -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" void -#else -#define __Pyx_PyMODINIT_FUNC void -#endif -#else -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyObject * -#endif -#endif + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + /* "talib/_common.pxi":61 + * + * class MA_Type(object): + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< + * + * def __init__(self): + */ + __pyx_tuple__20 = PyTuple_Pack(1, __pyx_int_9); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC init_ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC init_ta_lib(void) -#else -__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) -#else -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) -#endif -{ - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { -#if CYTHON_COMPILING_IN_LIMITED_API - result = PyModule_AddObject(module, to_name, value); -#else - result = PyDict_SetItemString(moddict, to_name, value); -#endif - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - CYTHON_UNUSED_VAR(def); - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; -#if CYTHON_COMPILING_IN_LIMITED_API - moddict = module; -#else - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; -#endif - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; -} + /* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ + __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_init, 63, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 63, __pyx_L1_error) + /* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ + __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_getitem, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 76, __pyx_L1_error) -static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module) -#endif -#endif -{ - int stringtab_initialized = 0; - #if CYTHON_USE_MODULE_STATE - int pystate_addmodule_run = 0; - #endif - PyObject *__pyx_t_1 = NULL; - 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 = 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)(PyObject *); - Py_ssize_t __pyx_t_17; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - double __pyx_t_21; - int __pyx_t_22; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - PyObject *__pyx_t_26 = NULL; - PyObject *__pyx_t_27 = NULL; - PyObject *__pyx_t_28 = NULL; - int __pyx_t_29; - int __pyx_t_30; - int __pyx_t_31; - PyObject *(*__pyx_t_32)(PyObject *); - int __pyx_lineno = 0; - const char *__pyx_filename = NULL; - int __pyx_clineno = 0; - __Pyx_RefNannyDeclarations - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module '_ta_lib' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("_ta_lib", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - if (unlikely(!__pyx_m)) __PYX_ERR(5, 1, __pyx_L1_error) - #elif CYTHON_USE_MODULE_STATE - __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1, __pyx_L1_error) - { - int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); - __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ - if (unlikely((add_module_result < 0))) __PYX_ERR(5, 1, __pyx_L1_error) - pystate_addmodule_run = 1; - } - #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - if (unlikely(!__pyx_m)) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #endif - CYTHON_UNUSED_VAR(__pyx_t_1); - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(5, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(5, 1, __pyx_L1_error) - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)", 0); - if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(5, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(5, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); - #endif - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitConstants() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - stringtab_initialized = 1; - if (__Pyx_InitGlobals() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_talib___ta_lib) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - } - #if PY_MAJOR_VERSION >= 3 - { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(5, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "talib._ta_lib")) { - if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(5, 1, __pyx_L1_error) - } - } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(5, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(5, 1, __pyx_L1_error) - #endif + /* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_ret_code, __pyx_n_s_id); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_unstable_period, 90, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 90, __pyx_L1_error) + + /* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_id); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_unstable_period, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 96, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_version, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ + __pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_compatibility, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 102, __pyx_L1_error) - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_n_s_ta_check_success, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_check_success, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ + __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_compatibility, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 107, __pyx_L1_error) - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_n_s_ta_initialize, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_initialize, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_tuple__33 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + __pyx_tuple__34 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_n_s_ta_shutdown, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_shutdown, __pyx_t_2) < 0) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_common.pxi":115 + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) # <<<<<<<<<<<<<< + * + * CandleSettingType = CandleSettingType() + */ + __pyx_tuple__35 = PyTuple_Pack(1, __pyx_int_12); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__19); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_n_s_MA_Type, __pyx_n_s_MA_Type, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_tuple__19) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_tuple__19) < 0))) __PYX_ERR(0, 60, __pyx_L1_error) - } + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_tuple__36 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + __pyx_tuple__37 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __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 != 9)) { - if (size > 9) __Pyx_RaiseTooManyValuesError(9); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 61, __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_t_7 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 5); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 6); - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 7); - __pyx_t_14 = PyTuple_GET_ITEM(sequence, 8); - } else { - __pyx_t_6 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - __pyx_t_8 = PyList_GET_ITEM(sequence, 2); - __pyx_t_9 = PyList_GET_ITEM(sequence, 3); - __pyx_t_10 = PyList_GET_ITEM(sequence, 4); - __pyx_t_11 = PyList_GET_ITEM(sequence, 5); - __pyx_t_12 = PyList_GET_ITEM(sequence, 6); - __pyx_t_13 = PyList_GET_ITEM(sequence, 7); - __pyx_t_14 = PyList_GET_ITEM(sequence, 8); - } - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_14); - #else - { - Py_ssize_t i; - PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; - for (i=0; i < 9; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; - __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_15); - for (index=0; index < 9; index++) { - PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L3_unpacking_done; - __pyx_L2_unpacking_failed:; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_L3_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_EMA, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_WMA, __pyx_t_8) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_DEMA, __pyx_t_9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TEMA, __pyx_t_10) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TRIMA, __pyx_t_11) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_KAMA, __pyx_t_12) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_MAMA, __pyx_t_13) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_T3, __pyx_t_14) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_common.pxi":120 + * + * class RangeType(object): + * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< + * + * RangeType = RangeType() + */ + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_int_3); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_n_s_MA_Type___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ + __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_settingtype, __pyx_n_s_rangetype, __pyx_n_s_avgperiod, __pyx_n_s_factor, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_candle_settings, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 124, __pyx_L1_error) - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_n_s_MA_Type___getitem, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_getitem, __pyx_t_5) < 0) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + /* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ + __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_settingtype, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__41); + __Pyx_GIVEREF(__pyx_tuple__41); + __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_restore_candle_default_setti, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 129, __pyx_L1_error) - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_5) < 0) __PYX_ERR(0, 60, __pyx_L1_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_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ + __pyx_tuple__44 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__44); + __Pyx_GIVEREF(__pyx_tuple__44); + __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ACOS, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__46); + __Pyx_GIVEREF(__pyx_tuple__46); + __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AD, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(3, 171, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_NONE, __pyx_int_neg_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_func_unst_ids, __pyx_t_3) < 0) __PYX_ERR(0, 81, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_tuple__48 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__48); + __Pyx_GIVEREF(__pyx_tuple__48); + __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADD, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_INCREF(__pyx_int_0); - __pyx_t_3 = __pyx_int_0; - __pyx_t_2 = PyList_New(24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_ADX); - __Pyx_GIVEREF(__pyx_n_s_ADX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ADX)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADXR); - __Pyx_GIVEREF(__pyx_n_s_ADXR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_ADXR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATR); - __Pyx_GIVEREF(__pyx_n_s_ATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ATR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CMO); - __Pyx_GIVEREF(__pyx_n_s_CMO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_CMO)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_DX); - __Pyx_GIVEREF(__pyx_n_s_DX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_DX)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_EMA); - __Pyx_GIVEREF(__pyx_n_s_EMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_EMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_PHASOR); - __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_HT_PHASOR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_SINE); - __Pyx_GIVEREF(__pyx_n_s_HT_SINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_HT_SINE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_KAMA); - __Pyx_GIVEREF(__pyx_n_s_KAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_KAMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAMA); - __Pyx_GIVEREF(__pyx_n_s_MAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_MAMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MFI); - __Pyx_GIVEREF(__pyx_n_s_MFI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_MFI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DI); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_MINUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DM); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 16, __pyx_n_s_MINUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_NATR); - __Pyx_GIVEREF(__pyx_n_s_NATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 17, __pyx_n_s_NATR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DI); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 18, __pyx_n_s_PLUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DM); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 19, __pyx_n_s_PLUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_RSI); - __Pyx_GIVEREF(__pyx_n_s_RSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 20, __pyx_n_s_RSI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STOCHRSI); - __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 21, __pyx_n_s_STOCHRSI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_T3); - __Pyx_GIVEREF(__pyx_n_s_T3); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 22, __pyx_n_s_T3)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ALL); - __Pyx_GIVEREF(__pyx_n_s_ALL); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 23, __pyx_n_s_ALL)) __PYX_ERR(0, 82, __pyx_L1_error); - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); - __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (__pyx_t_17 >= 24) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error) - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_3) < 0) __PYX_ERR(0, 82, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); - __pyx_t_3 = __pyx_t_2; - __pyx_t_2 = 0; + /* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ + __pyx_tuple__50 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__50); + __Pyx_GIVEREF(__pyx_tuple__50); + __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADOSC, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_14, __pyx_t_2) < 0))) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__52 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__52); + __Pyx_GIVEREF(__pyx_tuple__52); + __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADX, 269, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(3, 269, __pyx_L1_error) - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADXR, 302, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(3, 302, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_n_s_ta_set_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__55 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__55); + __Pyx_GIVEREF(__pyx_tuple__55); + __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_APO, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(3, 335, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_n_s_ta_get_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__57 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__57); + __Pyx_GIVEREF(__pyx_tuple__57); + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROON, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(3, 368, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_n_s_ta_set_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__59 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__59); + __Pyx_GIVEREF(__pyx_tuple__59); + __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(3, 403, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_n_s_ta_get_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":435 + * 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 ): + */ + __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ASIN, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(3, 435, __pyx_L1_error) - __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_tuple__34); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_CandleSettingType, __pyx_n_s_CandleSettingType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_3 != __pyx_tuple__34) { - if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__34) < 0))) __PYX_ERR(0, 112, __pyx_L1_error) - } + /* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ + __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATAN, 464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(3, 464, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { - PyObject* sequence = __pyx_t_14; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 12)) { - if (size > 12) __Pyx_RaiseTooManyValuesError(12); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 113, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 7); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 8); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 9); - __pyx_t_18 = PyTuple_GET_ITEM(sequence, 10); - __pyx_t_19 = PyTuple_GET_ITEM(sequence, 11); - } else { - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_13 = PyList_GET_ITEM(sequence, 1); - __pyx_t_12 = PyList_GET_ITEM(sequence, 2); - __pyx_t_11 = PyList_GET_ITEM(sequence, 3); - __pyx_t_10 = PyList_GET_ITEM(sequence, 4); - __pyx_t_9 = PyList_GET_ITEM(sequence, 5); - __pyx_t_8 = PyList_GET_ITEM(sequence, 6); - __pyx_t_7 = PyList_GET_ITEM(sequence, 7); - __pyx_t_6 = PyList_GET_ITEM(sequence, 8); - __pyx_t_15 = PyList_GET_ITEM(sequence, 9); - __pyx_t_18 = PyList_GET_ITEM(sequence, 10); - __pyx_t_19 = PyList_GET_ITEM(sequence, 11); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_15); - __Pyx_INCREF(__pyx_t_18); - __Pyx_INCREF(__pyx_t_19); - #else - { - Py_ssize_t i; - PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; - for (i=0; i < 12; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; - __pyx_t_20 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_20); - for (index=0; index < 12; index++) { - PyObject* item = __pyx_t_16(__pyx_t_20); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_20), 12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 113, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } + /* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(3, 493, __pyx_L1_error) - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyLong, __pyx_t_5) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyVeryLong, __pyx_t_13) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyShort, __pyx_t_12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyDoji, __pyx_t_11) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowLong, __pyx_t_10) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryLong, __pyx_t_9) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowShort, __pyx_t_8) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryShort, __pyx_t_7) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Near, __pyx_t_6) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Far, __pyx_t_15) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Equal, __pyx_t_18) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_AllCandleSettings, __pyx_t_19) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__64 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__64); + __Pyx_GIVEREF(__pyx_tuple__64); + __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AVGPRICE, 526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(3, 526, __pyx_L1_error) + + /* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_tuple__66 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__66); + __Pyx_GIVEREF(__pyx_tuple__66); + __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(3, 558, __pyx_L1_error) + + /* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ + __pyx_tuple__68 = PyTuple_Pack(11, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__68); + __Pyx_GIVEREF(__pyx_tuple__68); + __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BETA, 598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(3, 598, __pyx_L1_error) + + /* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BOP, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(3, 631, __pyx_L1_error) + + /* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(3, 663, __pyx_L1_error) + + /* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__72 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__72); + __Pyx_GIVEREF(__pyx_tuple__72); + __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 696, __pyx_L1_error) + + /* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3BLACKCROWS, 728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 728, __pyx_L1_error) + + /* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 760, __pyx_L1_error) - __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_CandleSettingType, __pyx_t_3, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_14) < 0) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__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; + /* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(3, 792, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_4) < 0) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 824, __pyx_L1_error) - __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_tuple__37); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_4, __pyx_n_s_RangeType, __pyx_n_s_RangeType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_4 != __pyx_tuple__37) { - if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__37) < 0))) __PYX_ERR(0, 119, __pyx_L1_error) - } + /* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3STARSINSOUTH, 856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 856, __pyx_L1_error) - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { - PyObject* sequence = __pyx_t_14; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 120, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_19 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_18 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_19 = PyList_GET_ITEM(sequence, 0); - __pyx_t_18 = PyList_GET_ITEM(sequence, 1); - __pyx_t_15 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_19); - __Pyx_INCREF(__pyx_t_18); - __Pyx_INCREF(__pyx_t_15); - #else - __pyx_t_19 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - #endif - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); - index = 0; __pyx_t_19 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_19); - index = 1; __pyx_t_18 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_18)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_18); - index = 2; __pyx_t_15 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_15)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 3) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L10_unpacking_done; - __pyx_L9_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 120, __pyx_L1_error) - __pyx_L10_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_RealBody, __pyx_t_19) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_HighLow, __pyx_t_18) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Shadows, __pyx_t_15) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 888, __pyx_L1_error) - __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_RangeType, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_14) < 0) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 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; + /* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_tuple__80 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__80); + __Pyx_GIVEREF(__pyx_tuple__80); + __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_3) < 0) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 954, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_n_s_ta_set_candle_settings, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_candle_settings, __pyx_t_3) < 0) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 986, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_n_s_ta_restore_candle_default_setti, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_restore_candle_default_setti, __pyx_t_3) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(3, 1018, __pyx_L1_error) - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_n_s_nan); - __Pyx_GIVEREF(__pyx_n_s_nan); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_nan)) __PYX_ERR(3, 2, __pyx_L1_error); - __pyx_t_4 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_3, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_nan, __pyx_t_3) < 0) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 1050, __pyx_L1_error) - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_21; + /* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 1082, __pyx_L1_error) - __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(3, 15, __pyx_L1_error) + /* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1114, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACOS, 0, __pyx_n_s_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_4) < 0) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 1146, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AD, 0, __pyx_n_s_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_4) < 0) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1180, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ADD, 0, __pyx_n_s_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 1212, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1244, __pyx_L1_error) - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4)) __PYX_ERR(3, 234, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADOSC, 0, __pyx_n_s_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 1276, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(3, 1308, __pyx_L1_error) - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADX, 0, __pyx_n_s_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 1342, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(3, 1376, __pyx_L1_error) - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADXR, 0, __pyx_n_s_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 1408, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(3, 1440, __pyx_L1_error) - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(3, 335, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 335, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_2 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31APO, 0, __pyx_n_s_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_4) < 0) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(3, 1472, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(3, 1504, __pyx_L1_error) - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33AROON, 0, __pyx_n_s_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_4) < 0) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(3, 1536, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 1568, __pyx_L1_error) - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROONOSC, 0, __pyx_n_s_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_4) < 0) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 1600, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ASIN, 0, __pyx_n_s_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_4) < 0) __PYX_ERR(3, 435, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(3, 1632, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ATAN, 0, __pyx_n_s_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_4) < 0) __PYX_ERR(3, 464, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(3, 1664, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(3, 1696, __pyx_L1_error) - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATR, 0, __pyx_n_s_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_4) < 0) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(3, 1728, __pyx_L1_error) - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AVGPRICE, 0, __pyx_n_s_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_4) < 0) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(3, 1760, __pyx_L1_error) - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 1792, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_2)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45BBANDS, 0, __pyx_n_s_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(3, 1824, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 1856, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47BETA, 0, __pyx_n_s_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(3, 1888, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BOP, 0, __pyx_n_s_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(3, 631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 1920, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMARUBOZU, 1952, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(3, 1952, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51CCI, 0, __pyx_n_s_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATCHINGLOW, 1984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(3, 1984, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53CDL2CROWS, 0, __pyx_n_s_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2016, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 2016, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS, 0, __pyx_n_s_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(3, 728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(3, 2050, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE, 0, __pyx_n_s_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 760, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(3, 2084, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE, 0, __pyx_n_s_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(3, 792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 2118, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE, 0, __pyx_n_s_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(3, 2150, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH, 0, __pyx_n_s_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(3, 856, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 2182, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS, 0, __pyx_n_s_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(3, 888, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRISEFALL3METHODS, 2214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(3, 2214, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 922, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSEPARATINGLINES, 2246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 2246, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY, 0, __pyx_n_s_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHOOTINGSTAR, 2278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(3, 2278, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK, 0, __pyx_n_s_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(3, 954, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHORTLINE, 2310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(3, 2310, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD, 0, __pyx_n_s_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 986, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSPINNINGTOP, 2342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 2342, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY, 0, __pyx_n_s_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(3, 1018, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTALLEDPATTERN, 2374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 2374, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, 0, __pyx_n_s_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 2406, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, 0, __pyx_n_s_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(3, 1082, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 2438, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK, 0, __pyx_n_s_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(3, 1114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2470, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 2470, __pyx_L1_error) + + /* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 2502, __pyx_L1_error) + + /* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 2534, __pyx_L1_error) + + /* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 2566, __pyx_L1_error) + + /* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 2598, __pyx_L1_error) + + /* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 2630, __pyx_L1_error) + + /* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ + __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 2662, __pyx_L1_error) + + /* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__136 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__136); + __Pyx_GIVEREF(__pyx_tuple__136); + __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CMO, 2691, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 2691, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CORREL, 2722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(3, 2722, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, 0, __pyx_n_s_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ + __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COS, 2755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(3, 2755, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLDOJI, 0, __pyx_n_s_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1180, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ + __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COSH, 2784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(3, 2784, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR, 0, __pyx_n_s_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1212, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(3, 2813, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, 0, __pyx_n_s_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1244, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DIV, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(3, 2844, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLENGULFING, 0, __pyx_n_s_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(3, 1276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DX, 2875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(3, 2875, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EMA, 2908, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(3, 2908, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, 0, __pyx_n_s_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ + __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 2939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(3, 2939, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_FLOOR, 2968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(3, 2968, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR, 0, __pyx_n_s_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPERIOD, 2997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(3, 2997, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(3, 1376, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPHASE, 3026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(3, 3026, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, 0, __pyx_n_s_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1408, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ + __pyx_tuple__149 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__149); + __Pyx_GIVEREF(__pyx_tuple__149); + __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_PHASOR, 3055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(3, 3055, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLHAMMER, 0, __pyx_n_s_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ + __pyx_tuple__151 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__151); + __Pyx_GIVEREF(__pyx_tuple__151); + __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_SINE, 3087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(3, 3087, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN, 0, __pyx_n_s_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(3, 1472, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDLINE, 3119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(3, 3119, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHARAMI, 0, __pyx_n_s_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(3, 1504, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_tuple__154 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__154); + __Pyx_GIVEREF(__pyx_tuple__154); + __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDMODE, 3148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(3, 3148, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS, 0, __pyx_n_s_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(3, 1536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ + __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_KAMA, 3177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(3, 3177, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE, 0, __pyx_n_s_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(3, 1568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG, 3208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(3, 3208, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE, 0, __pyx_n_s_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(3, 1600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_ANGLE, 3239, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(3, 3239, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD, 0, __pyx_n_s_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(3, 1632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_INTERCEPT, 3270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(3, 3270, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON, 0, __pyx_n_s_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(3, 1664, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_SLOPE, 3301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(3, 3301, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, 0, __pyx_n_s_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 1696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ + __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LN, 3332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(3, 3332, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLINNECK, 0, __pyx_n_s_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(3, 1728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ + __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LOG10, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(3, 3361, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER, 0, __pyx_n_s_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1760, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__163 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__163); + __Pyx_GIVEREF(__pyx_tuple__163); + __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(3, 3390, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLKICKING, 0, __pyx_n_s_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(3, 1792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + __pyx_tuple__165 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__165); + __Pyx_GIVEREF(__pyx_tuple__165); + __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACD, 3422, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(3, 3422, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, 0, __pyx_n_s_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(3, 1824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + __pyx_tuple__167 = PyTuple_Pack(17, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__167); + __Pyx_GIVEREF(__pyx_tuple__167); + __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDEXT, 3461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(3, 3461, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM, 0, __pyx_n_s_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(3, 1856, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + __pyx_tuple__169 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__169); + __Pyx_GIVEREF(__pyx_tuple__169); + __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(3, 3503, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, 0, __pyx_n_s_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1888, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + __pyx_tuple__171 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__171); + __Pyx_GIVEREF(__pyx_tuple__171); + __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAMA, 3540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(3, 3540, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE, 0, __pyx_n_s_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(3, 1920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__173 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__173); + __Pyx_GIVEREF(__pyx_tuple__173); + __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAVP, 3575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(3, 3575, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU, 0, __pyx_n_s_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1952, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAX, 3610, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(3, 3610, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW, 0, __pyx_n_s_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(3, 1984, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__176 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger, __pyx_n_s_outinteger_data, __pyx_n_s_i); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__176); + __Pyx_GIVEREF(__pyx_tuple__176); + __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(3, 3641, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ + __pyx_tuple__178 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__178); + __Pyx_GIVEREF(__pyx_tuple__178); + __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3675, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(3, 3675, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD, 0, __pyx_n_s_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3705 + * 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 ): + */ + __pyx_tuple__180 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__180); + __Pyx_GIVEREF(__pyx_tuple__180); + __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(3, 3705, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3739 + * 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 ): + */ + __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPOINT, 3739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(3, 3739, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, 0, __pyx_n_s_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(3, 3770, __pyx_L1_error) - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIN, 3802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(3, 3802, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR, 0, __pyx_n_s_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3833, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(3, 3833, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLONNECK, 0, __pyx_n_s_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(3, 2118, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__186 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__186); + __Pyx_GIVEREF(__pyx_tuple__186); + __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(3, 3867, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLPIERCING, 0, __pyx_n_s_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(3, 2150, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__188 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx, __pyx_n_s_outminidx_data, __pyx_n_s_i, __pyx_n_s_outmaxidx_data); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__188); + __Pyx_GIVEREF(__pyx_tuple__188); + __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(3, 3901, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN, 0, __pyx_n_s_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(3, 2182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DI, 3941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(3, 3941, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS, 0, __pyx_n_s_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2214, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DM, 3974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(3, 3974, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES, 0, __pyx_n_s_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(3, 2246, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MOM, 4006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(3, 4006, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR, 0, __pyx_n_s_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2278, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MULT, 4037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(3, 4037, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE, 0, __pyx_n_s_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(3, 2310, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 4068, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP, 0, __pyx_n_s_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(3, 2342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + __pyx_tuple__195 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__195); + __Pyx_GIVEREF(__pyx_tuple__195); + __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_OBV, 4101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 4101, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN, 0, __pyx_n_s_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(3, 2374, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DI, 4132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 4132, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH, 0, __pyx_n_s_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(3, 2406, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DM, 4165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 4165, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLTAKURI, 0, __pyx_n_s_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(3, 2438, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PPO, 4197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 4197, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP, 0, __pyx_n_s_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(3, 2470, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROC, 4230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(3, 4230, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING, 0, __pyx_n_s_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(3, 2502, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCP, 4261, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 4261, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR, 0, __pyx_n_s_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2534, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR, 4292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 4292, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER, 0, __pyx_n_s_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(3, 2566, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR100, 4323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 4323, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 2598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4354 + * 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 ): + */ + __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_RSI, 4354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 4354, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, 0, __pyx_n_s_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2630, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + __pyx_tuple__205 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__205); + __Pyx_GIVEREF(__pyx_tuple__205); + __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 4385, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CEIL, 0, __pyx_n_s_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(3, 2662, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + __pyx_tuple__207 = PyTuple_Pack(18, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__207); + __Pyx_GIVEREF(__pyx_tuple__207); + __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 4418, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SIN, 4457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 4457, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CMO, 0, __pyx_n_s_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4486 + * 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 ): + */ + __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SINH, 4486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(3, 4486, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SMA, 4515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 4515, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CORREL, 0, __pyx_n_s_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ + __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SQRT, 4546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(3, 4546, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181COS, 0, __pyx_n_s_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(3, 2755, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4575 + * 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 ): + */ + __pyx_tuple__213 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__213); + __Pyx_GIVEREF(__pyx_tuple__213); + __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STDDEV, 4575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 4575, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183COSH, 0, __pyx_n_s_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(3, 2784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4607 + * 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 ): + */ + __pyx_tuple__215 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__215); + __Pyx_GIVEREF(__pyx_tuple__215); + __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCH, 4607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 4607, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4647 + * 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 ): + */ + __pyx_tuple__217 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__217); + __Pyx_GIVEREF(__pyx_tuple__217); + __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHF, 4647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(3, 4647, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185DEMA, 0, __pyx_n_s_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4685 + * 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 ): + */ + __pyx_tuple__219 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__219); + __Pyx_GIVEREF(__pyx_tuple__219); + __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHRSI, 4685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(3, 4685, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187DIV, 0, __pyx_n_s_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(3, 2844, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4722 + * 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 ): + */ + __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUB, 4722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 4722, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4753 + * 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 ): + */ + __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4753, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(3, 4753, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DX, 0, __pyx_n_s_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + __pyx_tuple__223 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__223); + __Pyx_GIVEREF(__pyx_tuple__223); + __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_T3, 4784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(3, 4784, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ + __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TAN, 4816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 4816, __pyx_L1_error) + + /* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ + __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TANH, 4845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 4845, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191EMA, 0, __pyx_n_s_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TEMA, 4874, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 4874, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193EXP, 0, __pyx_n_s_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(3, 2939, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__228 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__228); + __Pyx_GIVEREF(__pyx_tuple__228); + __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRANGE, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(3, 4905, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195FLOOR, 0, __pyx_n_s_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(3, 2968, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIMA, 4936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(3, 4936, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD, 0, __pyx_n_s_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPERIOD, __pyx_t_3) < 0) __PYX_ERR(3, 2997, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIX, 4967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(3, 4967, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE, 0, __pyx_n_s_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPHASE, __pyx_t_3) < 0) __PYX_ERR(3, 3026, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TSF, 4998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(3, 4998, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_PHASOR, 0, __pyx_n_s_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_PHASOR, __pyx_t_3) < 0) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TYPPRICE, 5029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(3, 5029, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_SINE, 0, __pyx_n_s_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_SINE, __pyx_t_3) < 0) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + __pyx_tuple__234 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__234); + __Pyx_GIVEREF(__pyx_tuple__234); + __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5060, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(3, 5060, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE, 0, __pyx_n_s_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDLINE, __pyx_t_3) < 0) __PYX_ERR(3, 3119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(3, 5095, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE, 0, __pyx_n_s_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDMODE, __pyx_t_3) < 0) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(3, 5127, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WILLR, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(3, 5158, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209KAMA, 0, __pyx_n_s_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WMA, 5191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(3, 5191, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ + __pyx_tuple__241 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__241); + __Pyx_GIVEREF(__pyx_tuple__241); + __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 74, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211LINEARREG, 0, __pyx_n_s_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ + __pyx_tuple__243 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__243); + __Pyx_GIVEREF(__pyx_tuple__243); + __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 77, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ + __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(1, 82, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE, 0, __pyx_n_s_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ + __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 85, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(1, 85, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_tuple__247 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__247); + __Pyx_GIVEREF(__pyx_tuple__247); + __pyx_tuple__248 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__248); + __Pyx_GIVEREF(__pyx_tuple__248); - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT, 0, __pyx_n_s_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ + __pyx_tuple__249 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_function_name, __pyx_n_s_func_object, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__249); + __Pyx_GIVEREF(__pyx_tuple__249); + __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 117, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ + __pyx_tuple__251 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_i, __pyx_n_s_info, __pyx_n_s_input_name, __pyx_n_s_param_name, __pyx_n_s_output_name); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__251); + __Pyx_GIVEREF(__pyx_tuple__251); + __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_local_2, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 130, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE, 0, __pyx_n_s_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ + __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_info, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(1, 172, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LN, 0, __pyx_n_s_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(3, 3332, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ + __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_function_flags, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 179, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LOG10, 0, __pyx_n_s_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(3, 3361, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ + __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_flags, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(1, 186, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ + __pyx_tuple__256 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__256); + __Pyx_GIVEREF(__pyx_tuple__256); + __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_names, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 193, __pyx_L1_error) - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 3390, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223MA, 0, __pyx_n_s_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_15) < 0) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ + __pyx_tuple__258 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_input_names, __pyx_n_s_local, __pyx_n_s_input_name, __pyx_n_s_price_series); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__258); + __Pyx_GIVEREF(__pyx_tuple__258); + __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_names, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(1, 204, __pyx_L1_error) - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ + __pyx_tuple__260 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_local); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__260); + __Pyx_GIVEREF(__pyx_tuple__260); + __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_arrays, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(1, 216, __pyx_L1_error) - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)) __PYX_ERR(3, 3422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225MACD, 0, __pyx_n_s_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ + __pyx_tuple__262 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_input_arrays, __pyx_n_s_local, __pyx_n_s_missing_keys, __pyx_n_s_key, __pyx_n_s_missing); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__262); + __Pyx_GIVEREF(__pyx_tuple__262); + __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_arrays, 227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(1, 227, __pyx_L1_error) - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ + __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__264); + __Pyx_GIVEREF(__pyx_tuple__264); + __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_parameters, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(1, 276, __pyx_L1_error) - __pyx_t_19 = PyTuple_New(6); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_15)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_4)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227MACDEXT, 0, __pyx_n_s_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__168)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_18) < 0) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ + __pyx_tuple__266 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parameters, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_param, __pyx_n_s_value); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__266); + __Pyx_GIVEREF(__pyx_tuple__266); + __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_parameters, 286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(1, 286, __pyx_L1_error) + __pyx_tuple__268 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__268); + __Pyx_GIVEREF(__pyx_tuple__268); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ + __pyx_tuple__269 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_update_info, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_skip_first, __pyx_n_s_i, __pyx_n_s_param_name); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__269); + __Pyx_GIVEREF(__pyx_tuple__269); + __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_function_args, 301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(1, 301, __pyx_L1_error) - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MACDFIX, 0, __pyx_n_s_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__170)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_18) < 0) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ + __pyx_tuple__271 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_holder, __pyx_n_s_i, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_type, __pyx_n_s_lookback); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__271); + __Pyx_GIVEREF(__pyx_tuple__271); + __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 336, __pyx_L1_error) - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ + __pyx_tuple__273 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__273); + __Pyx_GIVEREF(__pyx_tuple__273); + __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_names, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(1, 357, __pyx_L1_error) - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_18)) __PYX_ERR(3, 3540, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MAMA, 0, __pyx_n_s_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_19) < 0) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ + __pyx_tuple__275 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__275); + __Pyx_GIVEREF(__pyx_tuple__275); + __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(1, 367, __pyx_L1_error) - __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ + __pyx_tuple__277 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__277)) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__277); + __Pyx_GIVEREF(__pyx_tuple__277); + __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(1, 399, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19)) __PYX_ERR(3, 3575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_4)) __PYX_ERR(3, 3575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error); - __pyx_t_19 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MAVP, 0, __pyx_n_s_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_18) < 0) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ + __pyx_tuple__279 = PyTuple_Pack(16, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_opt_input_values, __pyx_n_s_price_series_name_values, __pyx_n_s_input_arrays, __pyx_n_s_input_price_series_names, __pyx_n_s_i, __pyx_n_s_arg, __pyx_n_s_msg, __pyx_n_s_no_existing_input_arrays, __pyx_n_s_param_name, __pyx_n_s_value, __pyx_n_s_input_name, __pyx_n_s_n); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__279); + __Pyx_GIVEREF(__pyx_tuple__279); + __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(1, 411, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ + __pyx_tuple__281 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_input_name, __pyx_n_s_price_series, __pyx_n_s_name); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__281); + __Pyx_GIVEREF(__pyx_tuple__281); + __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_input_price_series_names_2, 477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(1, 477, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MAX, 0, __pyx_n_s_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_18) < 0) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ + __pyx_tuple__283 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_args, __pyx_n_s_price_series, __pyx_n_s_series, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_results, __pyx_n_s_keys, __pyx_n_s_i, __pyx_n_s_output); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__283); + __Pyx_GIVEREF(__pyx_tuple__283); + __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call_function, 489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 489, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ + __pyx_tuple__285 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__285); + __Pyx_GIVEREF(__pyx_tuple__285); + __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_check_opt_input_value, 520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(1, 520, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAXINDEX, 0, __pyx_n_s_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ + __pyx_tuple__287 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_local, __pyx_n_s_value); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__287); + __Pyx_GIVEREF(__pyx_tuple__287); + __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_opt_input_value, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(1, 535, __pyx_L1_error) - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MEDPRICE, 0, __pyx_n_s_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ + __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_repr, 545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(1, 545, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3707, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ + __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_unicode, 548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(1, 548, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MFI, 0, __pyx_n_s_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_18) < 0) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ + __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(1, 551, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ + __pyx_tuple__292 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__292); + __Pyx_GIVEREF(__pyx_tuple__292); + __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getGroupTable, 565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(1, 565, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MIDPOINT, 0, __pyx_n_s_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_18) < 0) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ + __pyx_tuple__294 = PyTuple_Pack(4, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__294); + __Pyx_GIVEREF(__pyx_tuple__294); + __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncTable, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(1, 577, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ + __pyx_tuple__296 = PyTuple_Pack(7, __pyx_n_s_flag, __pyx_n_s_flags_lookup_dict, __pyx_n_s_value_range, __pyx_n_s_min_int, __pyx_n_s_max_int, __pyx_n_s_ret, __pyx_n_s_i); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__296); + __Pyx_GIVEREF(__pyx_tuple__296); + __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_flags, 589, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(1, 589, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MIDPRICE, 0, __pyx_n_s_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ + __pyx_tuple__298 = PyTuple_Pack(3, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__298); + __Pyx_GIVEREF(__pyx_tuple__298); + __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncInfo, 648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(1, 648, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ + __pyx_tuple__300 = PyTuple_Pack(5, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__300); + __Pyx_GIVEREF(__pyx_tuple__300); + __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getInputParameterInfo, 667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(1, 667, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MIN, 0, __pyx_n_s_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_18) < 0) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ + __pyx_tuple__302 = PyTuple_Pack(6, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name, __pyx_n_s_default_value); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__302); + __Pyx_GIVEREF(__pyx_tuple__302); + __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(1, 688, __pyx_L1_error) - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ + __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOutputParameterInfo, 712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(1, 712, __pyx_L1_error) - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MININDEX, 0, __pyx_n_s_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ + __pyx_tuple__305 = PyTuple_Pack(13, __pyx_n_s_func_info, __pyx_n_s_defaults, __pyx_n_s_func_line, __pyx_n_s_func_args, __pyx_n_s_docs, __pyx_n_s_input_names, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_params, __pyx_n_s_param, __pyx_n_s_outputs, __pyx_n_s_output, __pyx_n_s_documentation); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__305); + __Pyx_GIVEREF(__pyx_tuple__305); + __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__305, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_defaults_and_docs, 732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} +/* #### Code section: init_constants ### */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { + __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; + __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys; + if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(4, 1, __pyx_L1_error); + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_2048 = PyInt_FromLong(2048); if (unlikely(!__pyx_int_2048)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_16777216 = PyInt_FromLong(16777216L); if (unlikely(!__pyx_int_16777216)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_67108864 = PyInt_FromLong(67108864L); if (unlikely(!__pyx_int_67108864)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_134217728 = PyInt_FromLong(134217728L); if (unlikely(!__pyx_int_134217728)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_268435456 = PyInt_FromLong(268435456L); if (unlikely(!__pyx_int_268435456)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(4, 1, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} +/* #### Code section: init_globals ### */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MINMAX, 0, __pyx_n_s_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_18) < 0) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + return 0; +} +/* #### Code section: init_module ### */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX, 0, __pyx_n_s_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MINUS_DI, 0, __pyx_n_s_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINUS_DM, 0, __pyx_n_s_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), + #else + sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 271, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 316, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 320, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 359, __pyx_L1_error) + __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error) + __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error) + __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error) + __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error) + __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error) + __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error) + __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error) + __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error) + __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error) + __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4008, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MOM, 0, __pyx_n_s_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_18) < 0) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MULT, 0, __pyx_n_s_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_18) < 0) __PYX_ERR(3, 4037, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib}, + {0, NULL} +}; +#endif - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263NATR, 0, __pyx_n_s_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_18) < 0) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +#ifdef __cplusplus +namespace { + struct PyModuleDef __pyx_moduledef = + #else + static struct PyModuleDef __pyx_moduledef = + #endif + { + PyModuleDef_HEAD_INIT, + "_ta_lib", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #elif CYTHON_USE_MODULE_STATE + sizeof(__pyx_mstate), /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + #if CYTHON_USE_MODULE_STATE + __pyx_m_traverse, /* m_traverse */ + __pyx_m_clear, /* m_clear */ + NULL /* m_free */ + #else + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ + #endif + }; + #ifdef __cplusplus +} /* anonymous namespace */ +#endif +#endif - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265OBV, 0, __pyx_n_s_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_18) < 0) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +#ifndef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#elif PY_MAJOR_VERSION < 3 +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" void +#else +#define __Pyx_PyMODINIT_FUNC void +#endif +#else +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyObject * +#endif +#endif - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267PLUS_DI, 0, __pyx_n_s_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC init_ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC init_ta_lib(void) +#else +__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +#if CYTHON_COMPILING_IN_LIMITED_API +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) +#else +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) +#endif +{ + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { +#if CYTHON_COMPILING_IN_LIMITED_API + result = PyModule_AddObject(module, to_name, value); +#else + result = PyDict_SetItemString(moddict, to_name, value); +#endif + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + CYTHON_UNUSED_VAR(def); + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; +#if CYTHON_COMPILING_IN_LIMITED_API + moddict = module; +#else + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; +#endif + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269PLUS_DM, 0, __pyx_n_s_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + int stringtab_initialized = 0; + #if CYTHON_USE_MODULE_STATE + int pystate_addmodule_run = 0; + #endif + PyObject *__pyx_t_1 = NULL; + 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 = 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)(PyObject *); + Py_ssize_t __pyx_t_17; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + double __pyx_t_21; + int __pyx_t_22; + PyObject *__pyx_t_23 = NULL; + PyObject *__pyx_t_24 = NULL; + int __pyx_t_25; + PyObject *__pyx_t_26 = NULL; + PyObject *__pyx_t_27 = NULL; + PyObject *__pyx_t_28 = NULL; + int __pyx_t_29; + int __pyx_t_30; + int __pyx_t_31; + PyObject *(*__pyx_t_32)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module '_ta_lib' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("_ta_lib", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + if (unlikely(!__pyx_m)) __PYX_ERR(4, 1, __pyx_L1_error) + #elif CYTHON_USE_MODULE_STATE + __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1, __pyx_L1_error) + { + int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); + __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ + if (unlikely((add_module_result < 0))) __PYX_ERR(4, 1, __pyx_L1_error) + pystate_addmodule_run = 1; + } + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + if (unlikely(!__pyx_m)) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #endif + CYTHON_UNUSED_VAR(__pyx_t_1); + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(4, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(4, 1, __pyx_L1_error) + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)", 0); + if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(4, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + PyEval_InitThreads(); + #endif + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitConstants() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + stringtab_initialized = 1; + if (__Pyx_InitGlobals() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_talib___ta_lib) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(4, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "talib._ta_lib")) { + if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(4, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(4, 1, __pyx_L1_error) + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(4, 1, __pyx_L1_error) + #endif - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_common.pxi":4 + * from _ta_lib cimport TA_RetCode, TA_FuncUnstId + * + * __ta_version__ = lib.TA_GetVersionString() # <<<<<<<<<<<<<< + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + */ + __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_version, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_19 = PyTuple_New(3); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 4197, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_15)) __PYX_ERR(3, 4197, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271PPO, 0, __pyx_n_s_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_4) < 0) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_n_s_ta_check_success, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_check_success, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_n_s_ta_initialize, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_initialize, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273ROC, 0, __pyx_n_s_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_4) < 0) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_n_s_ta_shutdown, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_shutdown, __pyx_t_2) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4263, __pyx_L1_error) + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__19); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_n_s_MA_Type, __pyx_n_s_MA_Type, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_2 != __pyx_tuple__19) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_tuple__19) < 0))) __PYX_ERR(0, 60, __pyx_L1_error) + } - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275ROCP, 0, __pyx_n_s_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_4) < 0) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_common.pxi":61 + * + * class MA_Type(object): + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< + * + * def __init__(self): + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __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 != 9)) { + if (size > 9) __Pyx_RaiseTooManyValuesError(9); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 61, __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_t_7 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 5); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 6); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 7); + __pyx_t_14 = PyTuple_GET_ITEM(sequence, 8); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_7 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + __pyx_t_9 = PyList_GET_ITEM(sequence, 3); + __pyx_t_10 = PyList_GET_ITEM(sequence, 4); + __pyx_t_11 = PyList_GET_ITEM(sequence, 5); + __pyx_t_12 = PyList_GET_ITEM(sequence, 6); + __pyx_t_13 = PyList_GET_ITEM(sequence, 7); + __pyx_t_14 = PyList_GET_ITEM(sequence, 8); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx_t_14); + #else + { + Py_ssize_t i; + PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; + for (i=0; i < 9; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; + __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_15); + for (index=0; index < 9; index++) { + PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L3_unpacking_done; + __pyx_L2_unpacking_failed:; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_L3_unpacking_done:; + } + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_EMA, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_WMA, __pyx_t_8) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_DEMA, __pyx_t_9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TEMA, __pyx_t_10) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TRIMA, __pyx_t_11) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_KAMA, __pyx_t_12) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_MAMA, __pyx_t_13) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_T3, __pyx_t_14) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_n_s_MA_Type___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277ROCR, 0, __pyx_n_s_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_4) < 0) __PYX_ERR(3, 4292, __pyx_L1_error) + /* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_n_s_MA_Type___getitem, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_getitem, __pyx_t_5) < 0) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_5) < 0) __PYX_ERR(0, 60, __pyx_L1_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_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_common.pxi":79 + * return self._lookup[type_] + * + * MA_Type = MA_Type() # <<<<<<<<<<<<<< + * + * _ta_func_unst_ids = {'NONE': -1} + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROCR100, 0, __pyx_n_s_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_4) < 0) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_common.pxi":81 + * MA_Type = MA_Type() + * + * _ta_func_unst_ids = {'NONE': -1} # <<<<<<<<<<<<<< + * for i, name in enumerate([ + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_NONE, __pyx_int_neg_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_func_unst_ids, __pyx_t_3) < 0) __PYX_ERR(0, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_common.pxi":82 + * + * _ta_func_unst_ids = {'NONE': -1} + * for i, name in enumerate([ # <<<<<<<<<<<<<< + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_3 = __pyx_int_0; + __pyx_t_2 = PyList_New(24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ADX); + __Pyx_GIVEREF(__pyx_n_s_ADX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ADX)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADXR); + __Pyx_GIVEREF(__pyx_n_s_ADXR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_ADXR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATR); + __Pyx_GIVEREF(__pyx_n_s_ATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ATR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CMO); + __Pyx_GIVEREF(__pyx_n_s_CMO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_CMO)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_DX); + __Pyx_GIVEREF(__pyx_n_s_DX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_DX)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_EMA); + __Pyx_GIVEREF(__pyx_n_s_EMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_EMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_PHASOR); + __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_HT_PHASOR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_SINE); + __Pyx_GIVEREF(__pyx_n_s_HT_SINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_HT_SINE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_KAMA); + __Pyx_GIVEREF(__pyx_n_s_KAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_KAMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAMA); + __Pyx_GIVEREF(__pyx_n_s_MAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_MAMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MFI); + __Pyx_GIVEREF(__pyx_n_s_MFI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_MFI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DI); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_MINUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DM); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 16, __pyx_n_s_MINUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_NATR); + __Pyx_GIVEREF(__pyx_n_s_NATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 17, __pyx_n_s_NATR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DI); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 18, __pyx_n_s_PLUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DM); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 19, __pyx_n_s_PLUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_RSI); + __Pyx_GIVEREF(__pyx_n_s_RSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 20, __pyx_n_s_RSI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STOCHRSI); + __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 21, __pyx_n_s_STOCHRSI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_T3); + __Pyx_GIVEREF(__pyx_n_s_T3); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 22, __pyx_n_s_T3)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ALL); + __Pyx_GIVEREF(__pyx_n_s_ALL); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 23, __pyx_n_s_ALL)) __PYX_ERR(0, 82, __pyx_L1_error); + __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); + __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (__pyx_t_17 >= 24) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error) + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_3) < 0) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281RSI, 0, __pyx_n_s_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_4) < 0) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* "talib/_common.pxi":88 + * 'NATR', 'PLUS_DI', 'PLUS_DM', 'RSI', 'STOCHRSI', 'T3', 'ALL' + * ]): + * _ta_func_unst_ids[name] = i # <<<<<<<<<<<<<< + * + * def _ta_set_unstable_period(name, period): + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_14, __pyx_t_2) < 0))) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + /* "talib/_common.pxi":82 + * + * _ta_func_unst_ids = {'NONE': -1} + * for i, name in enumerate([ # <<<<<<<<<<<<<< + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 4385, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283SAR, 0, __pyx_n_s_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_19) < 0) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_n_s_ta_set_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4420, __pyx_L1_error) + /* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_n_s_ta_get_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_18)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_14)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_3)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 7, __pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error); - __pyx_t_19 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_2 = 0; - __pyx_t_14 = 0; - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285SAREXT, 0, __pyx_n_s_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_6) < 0) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_n_s_ta_set_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287SIN, 0, __pyx_n_s_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_6) < 0) __PYX_ERR(3, 4457, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_n_s_ta_get_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SINH, 0, __pyx_n_s_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_6) < 0) __PYX_ERR(3, 4486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_tuple__34); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_CandleSettingType, __pyx_n_s_CandleSettingType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_3 != __pyx_tuple__34) { + if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__34) < 0))) __PYX_ERR(0, 112, __pyx_L1_error) + } - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_common.pxi":115 + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) # <<<<<<<<<<<<<< + * + * CandleSettingType = CandleSettingType() + */ + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { + PyObject* sequence = __pyx_t_14; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 12)) { + if (size > 12) __Pyx_RaiseTooManyValuesError(12); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 113, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 7); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 8); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 9); + __pyx_t_18 = PyTuple_GET_ITEM(sequence, 10); + __pyx_t_19 = PyTuple_GET_ITEM(sequence, 11); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_13 = PyList_GET_ITEM(sequence, 1); + __pyx_t_12 = PyList_GET_ITEM(sequence, 2); + __pyx_t_11 = PyList_GET_ITEM(sequence, 3); + __pyx_t_10 = PyList_GET_ITEM(sequence, 4); + __pyx_t_9 = PyList_GET_ITEM(sequence, 5); + __pyx_t_8 = PyList_GET_ITEM(sequence, 6); + __pyx_t_7 = PyList_GET_ITEM(sequence, 7); + __pyx_t_6 = PyList_GET_ITEM(sequence, 8); + __pyx_t_15 = PyList_GET_ITEM(sequence, 9); + __pyx_t_18 = PyList_GET_ITEM(sequence, 10); + __pyx_t_19 = PyList_GET_ITEM(sequence, 11); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(__pyx_t_19); + #else + { + Py_ssize_t i; + PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; + for (i=0; i < 12; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; + __pyx_t_20 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_20); + for (index=0; index < 12; index++) { + PyObject* item = __pyx_t_16(__pyx_t_20); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_20), 12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SMA, 0, __pyx_n_s_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + /* "talib/_common.pxi":113 + * + * class CandleSettingType(object): + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ # <<<<<<<<<<<<<< + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) + */ + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyLong, __pyx_t_5) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyVeryLong, __pyx_t_13) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyShort, __pyx_t_12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyDoji, __pyx_t_11) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowLong, __pyx_t_10) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryLong, __pyx_t_9) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowShort, __pyx_t_8) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryShort, __pyx_t_7) < 0) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SQRT, 0, __pyx_n_s_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_6) < 0) __PYX_ERR(3, 4546, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Near, __pyx_t_6) < 0) __PYX_ERR(0, 114, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Far, __pyx_t_15) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Equal, __pyx_t_18) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_AllCandleSettings, __pyx_t_19) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_CandleSettingType, __pyx_t_3, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_14) < 0) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__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; - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4575, __pyx_L1_error) + /* "talib/_common.pxi":117 + * range(12) + * + * CandleSettingType = CandleSettingType() # <<<<<<<<<<<<<< + * + * class RangeType(object): + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(3, 4575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295STDDEV, 0, __pyx_n_s_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_7) < 0) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_4) < 0) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4609, __pyx_L1_error) + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_tuple__37); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_6)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 3, __pyx_t_14)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 4, __pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297STOCH, 0, __pyx_n_s_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error) + __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_4, __pyx_n_s_RangeType, __pyx_n_s_RangeType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_2) < 0) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_4 != __pyx_tuple__37) { + if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__37) < 0))) __PYX_ERR(0, 119, __pyx_L1_error) + } - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4649, __pyx_L1_error) + /* "talib/_common.pxi":120 + * + * class RangeType(object): + * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< + * + * RangeType = RangeType() + */ + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 120, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); + if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { + PyObject* sequence = __pyx_t_14; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 120, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_19 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_18 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_19 = PyList_GET_ITEM(sequence, 0); + __pyx_t_18 = PyList_GET_ITEM(sequence, 1); + __pyx_t_15 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_19); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(__pyx_t_15); + #else + __pyx_t_19 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_15 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + #endif + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); + index = 0; __pyx_t_19 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_19); + index = 1; __pyx_t_18 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_18)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_18); + index = 2; __pyx_t_15 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_15)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 3) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_RealBody, __pyx_t_19) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_HighLow, __pyx_t_18) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Shadows, __pyx_t_15) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(3, 4647, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 4647, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_18 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299STOCHF, 0, __pyx_n_s_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error) + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_RangeType, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_14) < 0) __PYX_ERR(3, 4647, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_14) < 0) __PYX_ERR(0, 119, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_18)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error); - __pyx_t_14 = 0; - __pyx_t_6 = 0; - __pyx_t_18 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STOCHRSI, 0, __pyx_n_s_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_2) < 0) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303SUB, 0, __pyx_n_s_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_2) < 0) __PYX_ERR(3, 4722, __pyx_L1_error) __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_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4753, __pyx_L1_error) + /* "talib/_common.pxi":122 + * RealBody, HighLow, Shadows = range(3) + * + * RangeType = RangeType() # <<<<<<<<<<<<<< + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305SUM, 0, __pyx_n_s_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_3) < 0) __PYX_ERR(0, 122, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_2) < 0) __PYX_ERR(3, 4753, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4786, __pyx_L1_error) + /* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_n_s_ta_set_candle_settings, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_candle_settings, __pyx_t_3) < 0) __PYX_ERR(0, 124, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 4784, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307T3, 0, __pyx_n_s_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error) + /* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_n_s_ta_restore_candle_default_setti, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_GOTREF(__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_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(3, 4784, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_restore_candle_default_setti, __pyx_t_3) < 0) __PYX_ERR(0, 129, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309TAN, 0, __pyx_n_s_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4816, __pyx_L1_error) + /* "talib/_func.pxi":2 + * cimport numpy as np + * from numpy import nan # <<<<<<<<<<<<<< + * from cython import boundscheck, wraparound + * + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(3, 4816, __pyx_L1_error) + __Pyx_INCREF(__pyx_n_s_nan); + __Pyx_GIVEREF(__pyx_n_s_nan); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_nan)) __PYX_ERR(3, 2, __pyx_L1_error); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_3, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2, __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_311TANH, 0, __pyx_n_s_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4845, __pyx_L1_error) + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(3, 4845, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_nan, __pyx_t_3) < 0) __PYX_ERR(3, 2, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":7 + * # _ta_check_success: defined in _common.pxi + * + * cdef double NaN = nan # <<<<<<<<<<<<<< + * + * cdef extern from "numpy/arrayobject.h": + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_21; - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313TEMA, 0, __pyx_n_s_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":15 + * np.ndarray PyArray_GETCONTIGUOUS(np.ndarray) + * + * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + * + * cimport _ta_lib as lib + */ + __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(3, 15, __pyx_L1_error) - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TRANGE, 0, __pyx_n_s_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACOS, 0, __pyx_n_s_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_4) < 0) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4938, __pyx_L1_error) + /* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AD, 0, __pyx_n_s_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_4) < 0) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ADD, 0, __pyx_n_s_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":236 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): # <<<<<<<<<<<<<< + * """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 236, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4)) __PYX_ERR(3, 234, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error); + __pyx_t_4 = 0; __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TRIMA, 0, __pyx_n_s_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADOSC, 0, __pyx_n_s_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error) __Pyx_GOTREF(__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_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(3, 4936, __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_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(3, 234, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4969, __pyx_L1_error) + /* "talib/_func.pxi":271 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 271, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TRIX, 0, __pyx_n_s_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADX, 0, __pyx_n_s_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error) __Pyx_GOTREF(__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_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(3, 4967, __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_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(3, 269, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5000, __pyx_L1_error) + /* "talib/_func.pxi":304 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADXR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 304, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TSF, 0, __pyx_n_s_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TYPPRICE, 0, __pyx_n_s_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5029, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADXR, 0, __pyx_n_s_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(3, 5029, __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_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(3, 302, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5062, __pyx_L1_error) + /* "talib/_func.pxi":337 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5062, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3)) __PYX_ERR(3, 5060, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 5060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(3, 335, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 335, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error); __pyx_t_3 = 0; - __pyx_t_18 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325ULTOSC, 0, __pyx_n_s_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_2) < 0) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31APO, 0, __pyx_n_s_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_4) < 0) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":370 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROON(high, low[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 5095, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327VAR, 0, __pyx_n_s_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_6) < 0) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33AROON, 0, __pyx_n_s_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_4) < 0) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329WCLPRICE, 0, __pyx_n_s_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_6) < 0) __PYX_ERR(3, 5127, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":405 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROONOSC(high, low[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROONOSC, 0, __pyx_n_s_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_4) < 0) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331WILLR, 0, __pyx_n_s_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__238)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_6) < 0) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":435 + * 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 ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ASIN, 0, __pyx_n_s_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_4) < 0) __PYX_ERR(3, 435, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ATAN, 0, __pyx_n_s_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_4) < 0) __PYX_ERR(3, 464, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333WMA, 0, __pyx_n_s_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":495 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ATR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_6 = PyList_New(158); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(__pyx_n_s_ACOS); - __Pyx_GIVEREF(__pyx_n_s_ACOS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_ACOS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AD); - __Pyx_GIVEREF(__pyx_n_s_AD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_AD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADD); - __Pyx_GIVEREF(__pyx_n_s_ADD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 2, __pyx_n_s_ADD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADOSC); - __Pyx_GIVEREF(__pyx_n_s_ADOSC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 3, __pyx_n_s_ADOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADX); - __Pyx_GIVEREF(__pyx_n_s_ADX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 4, __pyx_n_s_ADX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADXR); - __Pyx_GIVEREF(__pyx_n_s_ADXR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 5, __pyx_n_s_ADXR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_APO); - __Pyx_GIVEREF(__pyx_n_s_APO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 6, __pyx_n_s_APO)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AROON); - __Pyx_GIVEREF(__pyx_n_s_AROON); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 7, __pyx_n_s_AROON)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AROONOSC); - __Pyx_GIVEREF(__pyx_n_s_AROONOSC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 8, __pyx_n_s_AROONOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ASIN); - __Pyx_GIVEREF(__pyx_n_s_ASIN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 9, __pyx_n_s_ASIN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATAN); - __Pyx_GIVEREF(__pyx_n_s_ATAN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 10, __pyx_n_s_ATAN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATR); - __Pyx_GIVEREF(__pyx_n_s_ATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 11, __pyx_n_s_ATR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AVGPRICE); - __Pyx_GIVEREF(__pyx_n_s_AVGPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 12, __pyx_n_s_AVGPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BBANDS); - __Pyx_GIVEREF(__pyx_n_s_BBANDS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 13, __pyx_n_s_BBANDS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BETA); - __Pyx_GIVEREF(__pyx_n_s_BETA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 14, __pyx_n_s_BETA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BOP); - __Pyx_GIVEREF(__pyx_n_s_BOP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 15, __pyx_n_s_BOP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CCI); - __Pyx_GIVEREF(__pyx_n_s_CCI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 16, __pyx_n_s_CCI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL2CROWS); - __Pyx_GIVEREF(__pyx_n_s_CDL2CROWS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 17, __pyx_n_s_CDL2CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3BLACKCROWS); - __Pyx_GIVEREF(__pyx_n_s_CDL3BLACKCROWS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 18, __pyx_n_s_CDL3BLACKCROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3INSIDE); - __Pyx_GIVEREF(__pyx_n_s_CDL3INSIDE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 19, __pyx_n_s_CDL3INSIDE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3LINESTRIKE); - __Pyx_GIVEREF(__pyx_n_s_CDL3LINESTRIKE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 20, __pyx_n_s_CDL3LINESTRIKE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3OUTSIDE); - __Pyx_GIVEREF(__pyx_n_s_CDL3OUTSIDE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 21, __pyx_n_s_CDL3OUTSIDE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3STARSINSOUTH); - __Pyx_GIVEREF(__pyx_n_s_CDL3STARSINSOUTH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 22, __pyx_n_s_CDL3STARSINSOUTH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL3WHITESOLDIERS); - __Pyx_GIVEREF(__pyx_n_s_CDL3WHITESOLDIERS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 23, __pyx_n_s_CDL3WHITESOLDIERS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLABANDONEDBABY); - __Pyx_GIVEREF(__pyx_n_s_CDLABANDONEDBABY); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 24, __pyx_n_s_CDLABANDONEDBABY)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLADVANCEBLOCK); - __Pyx_GIVEREF(__pyx_n_s_CDLADVANCEBLOCK); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 25, __pyx_n_s_CDLADVANCEBLOCK)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLBELTHOLD); - __Pyx_GIVEREF(__pyx_n_s_CDLBELTHOLD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 26, __pyx_n_s_CDLBELTHOLD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLBREAKAWAY); - __Pyx_GIVEREF(__pyx_n_s_CDLBREAKAWAY); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 27, __pyx_n_s_CDLBREAKAWAY)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLCLOSINGMARUBOZU); - __Pyx_GIVEREF(__pyx_n_s_CDLCLOSINGMARUBOZU); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 28, __pyx_n_s_CDLCLOSINGMARUBOZU)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLCONCEALBABYSWALL); - __Pyx_GIVEREF(__pyx_n_s_CDLCONCEALBABYSWALL); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 29, __pyx_n_s_CDLCONCEALBABYSWALL)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLCOUNTERATTACK); - __Pyx_GIVEREF(__pyx_n_s_CDLCOUNTERATTACK); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 30, __pyx_n_s_CDLCOUNTERATTACK)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLDARKCLOUDCOVER); - __Pyx_GIVEREF(__pyx_n_s_CDLDARKCLOUDCOVER); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 31, __pyx_n_s_CDLDARKCLOUDCOVER)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLDOJI); - __Pyx_GIVEREF(__pyx_n_s_CDLDOJI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 32, __pyx_n_s_CDLDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLDOJISTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLDOJISTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 33, __pyx_n_s_CDLDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLDRAGONFLYDOJI); - __Pyx_GIVEREF(__pyx_n_s_CDLDRAGONFLYDOJI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 34, __pyx_n_s_CDLDRAGONFLYDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLENGULFING); - __Pyx_GIVEREF(__pyx_n_s_CDLENGULFING); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 35, __pyx_n_s_CDLENGULFING)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLEVENINGDOJISTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGDOJISTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 36, __pyx_n_s_CDLEVENINGDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLEVENINGSTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGSTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 37, __pyx_n_s_CDLEVENINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLGAPSIDESIDEWHITE); - __Pyx_GIVEREF(__pyx_n_s_CDLGAPSIDESIDEWHITE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 38, __pyx_n_s_CDLGAPSIDESIDEWHITE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLGRAVESTONEDOJI); - __Pyx_GIVEREF(__pyx_n_s_CDLGRAVESTONEDOJI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 39, __pyx_n_s_CDLGRAVESTONEDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHAMMER); - __Pyx_GIVEREF(__pyx_n_s_CDLHAMMER); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 40, __pyx_n_s_CDLHAMMER)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHANGINGMAN); - __Pyx_GIVEREF(__pyx_n_s_CDLHANGINGMAN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 41, __pyx_n_s_CDLHANGINGMAN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHARAMI); - __Pyx_GIVEREF(__pyx_n_s_CDLHARAMI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 42, __pyx_n_s_CDLHARAMI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHARAMICROSS); - __Pyx_GIVEREF(__pyx_n_s_CDLHARAMICROSS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 43, __pyx_n_s_CDLHARAMICROSS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHIGHWAVE); - __Pyx_GIVEREF(__pyx_n_s_CDLHIGHWAVE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 44, __pyx_n_s_CDLHIGHWAVE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHIKKAKE); - __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 45, __pyx_n_s_CDLHIKKAKE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHIKKAKEMOD); - __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKEMOD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 46, __pyx_n_s_CDLHIKKAKEMOD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLHOMINGPIGEON); - __Pyx_GIVEREF(__pyx_n_s_CDLHOMINGPIGEON); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 47, __pyx_n_s_CDLHOMINGPIGEON)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLIDENTICAL3CROWS); - __Pyx_GIVEREF(__pyx_n_s_CDLIDENTICAL3CROWS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 48, __pyx_n_s_CDLIDENTICAL3CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLINNECK); - __Pyx_GIVEREF(__pyx_n_s_CDLINNECK); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 49, __pyx_n_s_CDLINNECK)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLINVERTEDHAMMER); - __Pyx_GIVEREF(__pyx_n_s_CDLINVERTEDHAMMER); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 50, __pyx_n_s_CDLINVERTEDHAMMER)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLKICKING); - __Pyx_GIVEREF(__pyx_n_s_CDLKICKING); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 51, __pyx_n_s_CDLKICKING)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLKICKINGBYLENGTH); - __Pyx_GIVEREF(__pyx_n_s_CDLKICKINGBYLENGTH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 52, __pyx_n_s_CDLKICKINGBYLENGTH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLLADDERBOTTOM); - __Pyx_GIVEREF(__pyx_n_s_CDLLADDERBOTTOM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 53, __pyx_n_s_CDLLADDERBOTTOM)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLLONGLEGGEDDOJI); - __Pyx_GIVEREF(__pyx_n_s_CDLLONGLEGGEDDOJI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 54, __pyx_n_s_CDLLONGLEGGEDDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLLONGLINE); - __Pyx_GIVEREF(__pyx_n_s_CDLLONGLINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 55, __pyx_n_s_CDLLONGLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLMARUBOZU); - __Pyx_GIVEREF(__pyx_n_s_CDLMARUBOZU); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 56, __pyx_n_s_CDLMARUBOZU)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLMATCHINGLOW); - __Pyx_GIVEREF(__pyx_n_s_CDLMATCHINGLOW); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 57, __pyx_n_s_CDLMATCHINGLOW)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLMATHOLD); - __Pyx_GIVEREF(__pyx_n_s_CDLMATHOLD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 58, __pyx_n_s_CDLMATHOLD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLMORNINGDOJISTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGDOJISTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 59, __pyx_n_s_CDLMORNINGDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLMORNINGSTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGSTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 60, __pyx_n_s_CDLMORNINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLONNECK); - __Pyx_GIVEREF(__pyx_n_s_CDLONNECK); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 61, __pyx_n_s_CDLONNECK)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLPIERCING); - __Pyx_GIVEREF(__pyx_n_s_CDLPIERCING); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 62, __pyx_n_s_CDLPIERCING)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLRICKSHAWMAN); - __Pyx_GIVEREF(__pyx_n_s_CDLRICKSHAWMAN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 63, __pyx_n_s_CDLRICKSHAWMAN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLRISEFALL3METHODS); - __Pyx_GIVEREF(__pyx_n_s_CDLRISEFALL3METHODS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 64, __pyx_n_s_CDLRISEFALL3METHODS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSEPARATINGLINES); - __Pyx_GIVEREF(__pyx_n_s_CDLSEPARATINGLINES); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 65, __pyx_n_s_CDLSEPARATINGLINES)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSHOOTINGSTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLSHOOTINGSTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 66, __pyx_n_s_CDLSHOOTINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSHORTLINE); - __Pyx_GIVEREF(__pyx_n_s_CDLSHORTLINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 67, __pyx_n_s_CDLSHORTLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSPINNINGTOP); - __Pyx_GIVEREF(__pyx_n_s_CDLSPINNINGTOP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 68, __pyx_n_s_CDLSPINNINGTOP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSTALLEDPATTERN); - __Pyx_GIVEREF(__pyx_n_s_CDLSTALLEDPATTERN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 69, __pyx_n_s_CDLSTALLEDPATTERN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLSTICKSANDWICH); - __Pyx_GIVEREF(__pyx_n_s_CDLSTICKSANDWICH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 70, __pyx_n_s_CDLSTICKSANDWICH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLTAKURI); - __Pyx_GIVEREF(__pyx_n_s_CDLTAKURI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 71, __pyx_n_s_CDLTAKURI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLTASUKIGAP); - __Pyx_GIVEREF(__pyx_n_s_CDLTASUKIGAP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 72, __pyx_n_s_CDLTASUKIGAP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLTHRUSTING); - __Pyx_GIVEREF(__pyx_n_s_CDLTHRUSTING); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 73, __pyx_n_s_CDLTHRUSTING)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLTRISTAR); - __Pyx_GIVEREF(__pyx_n_s_CDLTRISTAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 74, __pyx_n_s_CDLTRISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLUNIQUE3RIVER); - __Pyx_GIVEREF(__pyx_n_s_CDLUNIQUE3RIVER); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 75, __pyx_n_s_CDLUNIQUE3RIVER)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLUPSIDEGAP2CROWS); - __Pyx_GIVEREF(__pyx_n_s_CDLUPSIDEGAP2CROWS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 76, __pyx_n_s_CDLUPSIDEGAP2CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDLXSIDEGAP3METHODS); - __Pyx_GIVEREF(__pyx_n_s_CDLXSIDEGAP3METHODS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 77, __pyx_n_s_CDLXSIDEGAP3METHODS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CEIL); - __Pyx_GIVEREF(__pyx_n_s_CEIL); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 78, __pyx_n_s_CEIL)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CMO); - __Pyx_GIVEREF(__pyx_n_s_CMO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 79, __pyx_n_s_CMO)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CORREL); - __Pyx_GIVEREF(__pyx_n_s_CORREL); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 80, __pyx_n_s_CORREL)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_COS); - __Pyx_GIVEREF(__pyx_n_s_COS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 81, __pyx_n_s_COS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_COSH); - __Pyx_GIVEREF(__pyx_n_s_COSH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 82, __pyx_n_s_COSH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_DEMA); - __Pyx_GIVEREF(__pyx_n_s_DEMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 83, __pyx_n_s_DEMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_DIV); - __Pyx_GIVEREF(__pyx_n_s_DIV); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 84, __pyx_n_s_DIV)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_DX); - __Pyx_GIVEREF(__pyx_n_s_DX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 85, __pyx_n_s_DX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_EMA); - __Pyx_GIVEREF(__pyx_n_s_EMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 86, __pyx_n_s_EMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_EXP); - __Pyx_GIVEREF(__pyx_n_s_EXP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 87, __pyx_n_s_EXP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_FLOOR); - __Pyx_GIVEREF(__pyx_n_s_FLOOR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 88, __pyx_n_s_FLOOR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 89, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 90, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_PHASOR); - __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 91, __pyx_n_s_HT_PHASOR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_SINE); - __Pyx_GIVEREF(__pyx_n_s_HT_SINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 92, __pyx_n_s_HT_SINE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 93, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 94, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_KAMA); - __Pyx_GIVEREF(__pyx_n_s_KAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 95, __pyx_n_s_KAMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LINEARREG); - __Pyx_GIVEREF(__pyx_n_s_LINEARREG); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 96, __pyx_n_s_LINEARREG)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LINEARREG_ANGLE); - __Pyx_GIVEREF(__pyx_n_s_LINEARREG_ANGLE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 97, __pyx_n_s_LINEARREG_ANGLE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LINEARREG_INTERCEPT); - __Pyx_GIVEREF(__pyx_n_s_LINEARREG_INTERCEPT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 98, __pyx_n_s_LINEARREG_INTERCEPT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LINEARREG_SLOPE); - __Pyx_GIVEREF(__pyx_n_s_LINEARREG_SLOPE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 99, __pyx_n_s_LINEARREG_SLOPE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LN); - __Pyx_GIVEREF(__pyx_n_s_LN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 100, __pyx_n_s_LN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_LOG10); - __Pyx_GIVEREF(__pyx_n_s_LOG10); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 101, __pyx_n_s_LOG10)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MA); - __Pyx_GIVEREF(__pyx_n_s_MA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 102, __pyx_n_s_MA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MACD); - __Pyx_GIVEREF(__pyx_n_s_MACD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 103, __pyx_n_s_MACD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MACDEXT); - __Pyx_GIVEREF(__pyx_n_s_MACDEXT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 104, __pyx_n_s_MACDEXT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MACDFIX); - __Pyx_GIVEREF(__pyx_n_s_MACDFIX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 105, __pyx_n_s_MACDFIX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAMA); - __Pyx_GIVEREF(__pyx_n_s_MAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 106, __pyx_n_s_MAMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAVP); - __Pyx_GIVEREF(__pyx_n_s_MAVP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 107, __pyx_n_s_MAVP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAX); - __Pyx_GIVEREF(__pyx_n_s_MAX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 108, __pyx_n_s_MAX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAXINDEX); - __Pyx_GIVEREF(__pyx_n_s_MAXINDEX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 109, __pyx_n_s_MAXINDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MEDPRICE); - __Pyx_GIVEREF(__pyx_n_s_MEDPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 110, __pyx_n_s_MEDPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MFI); - __Pyx_GIVEREF(__pyx_n_s_MFI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 111, __pyx_n_s_MFI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MIDPOINT); - __Pyx_GIVEREF(__pyx_n_s_MIDPOINT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 112, __pyx_n_s_MIDPOINT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MIDPRICE); - __Pyx_GIVEREF(__pyx_n_s_MIDPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 113, __pyx_n_s_MIDPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MIN); - __Pyx_GIVEREF(__pyx_n_s_MIN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 114, __pyx_n_s_MIN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MININDEX); - __Pyx_GIVEREF(__pyx_n_s_MININDEX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 115, __pyx_n_s_MININDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINMAX); - __Pyx_GIVEREF(__pyx_n_s_MINMAX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 116, __pyx_n_s_MINMAX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINMAXINDEX); - __Pyx_GIVEREF(__pyx_n_s_MINMAXINDEX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 117, __pyx_n_s_MINMAXINDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DI); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 118, __pyx_n_s_MINUS_DI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DM); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 119, __pyx_n_s_MINUS_DM)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MOM); - __Pyx_GIVEREF(__pyx_n_s_MOM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 120, __pyx_n_s_MOM)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MULT); - __Pyx_GIVEREF(__pyx_n_s_MULT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 121, __pyx_n_s_MULT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_NATR); - __Pyx_GIVEREF(__pyx_n_s_NATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 122, __pyx_n_s_NATR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_OBV); - __Pyx_GIVEREF(__pyx_n_s_OBV); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 123, __pyx_n_s_OBV)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DI); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 124, __pyx_n_s_PLUS_DI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DM); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 125, __pyx_n_s_PLUS_DM)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PPO); - __Pyx_GIVEREF(__pyx_n_s_PPO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 126, __pyx_n_s_PPO)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ROC); - __Pyx_GIVEREF(__pyx_n_s_ROC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 127, __pyx_n_s_ROC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ROCP); - __Pyx_GIVEREF(__pyx_n_s_ROCP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 128, __pyx_n_s_ROCP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ROCR); - __Pyx_GIVEREF(__pyx_n_s_ROCR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 129, __pyx_n_s_ROCR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ROCR100); - __Pyx_GIVEREF(__pyx_n_s_ROCR100); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 130, __pyx_n_s_ROCR100)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_RSI); - __Pyx_GIVEREF(__pyx_n_s_RSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 131, __pyx_n_s_RSI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SAR); - __Pyx_GIVEREF(__pyx_n_s_SAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 132, __pyx_n_s_SAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SAREXT); - __Pyx_GIVEREF(__pyx_n_s_SAREXT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 133, __pyx_n_s_SAREXT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SIN); - __Pyx_GIVEREF(__pyx_n_s_SIN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 134, __pyx_n_s_SIN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SINH); - __Pyx_GIVEREF(__pyx_n_s_SINH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 135, __pyx_n_s_SINH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SMA); - __Pyx_GIVEREF(__pyx_n_s_SMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 136, __pyx_n_s_SMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SQRT); - __Pyx_GIVEREF(__pyx_n_s_SQRT); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 137, __pyx_n_s_SQRT)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STDDEV); - __Pyx_GIVEREF(__pyx_n_s_STDDEV); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 138, __pyx_n_s_STDDEV)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STOCH); - __Pyx_GIVEREF(__pyx_n_s_STOCH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 139, __pyx_n_s_STOCH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STOCHF); - __Pyx_GIVEREF(__pyx_n_s_STOCHF); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 140, __pyx_n_s_STOCHF)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STOCHRSI); - __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 141, __pyx_n_s_STOCHRSI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SUB); - __Pyx_GIVEREF(__pyx_n_s_SUB); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 142, __pyx_n_s_SUB)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_SUM); - __Pyx_GIVEREF(__pyx_n_s_SUM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 143, __pyx_n_s_SUM)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_T3); - __Pyx_GIVEREF(__pyx_n_s_T3); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 144, __pyx_n_s_T3)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TAN); - __Pyx_GIVEREF(__pyx_n_s_TAN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 145, __pyx_n_s_TAN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TANH); - __Pyx_GIVEREF(__pyx_n_s_TANH); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 146, __pyx_n_s_TANH)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TEMA); - __Pyx_GIVEREF(__pyx_n_s_TEMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 147, __pyx_n_s_TEMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TRANGE); - __Pyx_GIVEREF(__pyx_n_s_TRANGE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 148, __pyx_n_s_TRANGE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TRIMA); - __Pyx_GIVEREF(__pyx_n_s_TRIMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 149, __pyx_n_s_TRIMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TRIX); - __Pyx_GIVEREF(__pyx_n_s_TRIX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 150, __pyx_n_s_TRIX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TSF); - __Pyx_GIVEREF(__pyx_n_s_TSF); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 151, __pyx_n_s_TSF)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_TYPPRICE); - __Pyx_GIVEREF(__pyx_n_s_TYPPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 152, __pyx_n_s_TYPPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ULTOSC); - __Pyx_GIVEREF(__pyx_n_s_ULTOSC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 153, __pyx_n_s_ULTOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_VAR); - __Pyx_GIVEREF(__pyx_n_s_VAR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 154, __pyx_n_s_VAR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_WCLPRICE); - __Pyx_GIVEREF(__pyx_n_s_WCLPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 155, __pyx_n_s_WCLPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_WILLR); - __Pyx_GIVEREF(__pyx_n_s_WILLR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 156, __pyx_n_s_WILLR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_WMA); - __Pyx_GIVEREF(__pyx_n_s_WMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 157, __pyx_n_s_WMA)) __PYX_ERR(3, 5222, __pyx_L1_error); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNCTION_NAMES, __pyx_t_6) < 0) __PYX_ERR(3, 5222, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATR, 0, __pyx_n_s_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_4) < 0) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_6) < 0) __PYX_ERR(1, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AVGPRICE, 0, __pyx_n_s_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_4) < 0) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_6) < 0) __PYX_ERR(1, 5, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":560 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): # <<<<<<<<<<<<<< + * """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_24); - /*try:*/ { + /* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_2)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45BBANDS, 0, __pyx_n_s_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(__pyx_n_s_OrderedDict); - __Pyx_GIVEREF(__pyx_n_s_OrderedDict); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 7, __pyx_L11_error); - __pyx_t_18 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_6, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_18, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_6) < 0) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":600 + * @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 ): # <<<<<<<<<<<<<< + * """ BETA(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - goto __pyx_L16_try_end; - __pyx_L11_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + /* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47BETA, 0, __pyx_n_s_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 8, __pyx_L13_except_error) - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_2); + /* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BOP, 0, __pyx_n_s_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(3, 631, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_n_s_OrderedDict); - __Pyx_GIVEREF(__pyx_n_s_OrderedDict); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 9, __pyx_L13_except_error); - __pyx_t_14 = __Pyx_Import(__pyx_n_s_ordereddict, __pyx_t_3, -1); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_14, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_3) < 0) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L12_exception_handled; - } - goto __pyx_L13_except_error; + /* "talib/_func.pxi":665 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CCI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_L13_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - goto __pyx_L1_error; - __pyx_L12_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - __pyx_L16_try_end:; - } + /* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51CCI, 0, __pyx_n_s_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_2) < 0) __PYX_ERR(1, 11, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53CDL2CROWS, 0, __pyx_n_s_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS, 0, __pyx_n_s_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(3, 728, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(1, 18, __pyx_L1_error) + /* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE, 0, __pyx_n_s_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 760, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 21, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price, __pyx_n_s_close) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price0, __pyx_n_s_high) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price1, __pyx_n_s_low) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_periods, __pyx_n_s_periods) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_2) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE, 0, __pyx_n_s_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(3, 792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)(&PyDict_Type)); - __Pyx_GIVEREF((PyObject *)(&PyDict_Type)); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyDict_Type)))) __PYX_ERR(1, 27, __pyx_L1_error); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE, 0, __pyx_n_s_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 824, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)__pyx_ptype_5numpy_ndarray); - __Pyx_GIVEREF((PyObject *)__pyx_ptype_5numpy_ndarray); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_5numpy_ndarray))) __PYX_ERR(1, 28, __pyx_L1_error); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 28, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH, 0, __pyx_n_s_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(3, 856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS, 0, __pyx_n_s_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(3, 888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":922 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY, 0, __pyx_n_s_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK, 0, __pyx_n_s_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(3, 954, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD, 0, __pyx_n_s_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 986, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY, 0, __pyx_n_s_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(3, 1018, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, 0, __pyx_n_s_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, 0, __pyx_n_s_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(3, 1082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK, 0, __pyx_n_s_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(3, 1114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1148 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, 0, __pyx_n_s_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLDOJI, 0, __pyx_n_s_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR, 0, __pyx_n_s_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1212, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, 0, __pyx_n_s_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLENGULFING, 0, __pyx_n_s_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(3, 1276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1310 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, 0, __pyx_n_s_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1344 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR, 0, __pyx_n_s_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(3, 1376, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, 0, __pyx_n_s_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1408, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLHAMMER, 0, __pyx_n_s_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1440, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN, 0, __pyx_n_s_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(3, 1472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHARAMI, 0, __pyx_n_s_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(3, 1504, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS, 0, __pyx_n_s_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(3, 1536, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE, 0, __pyx_n_s_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(3, 1568, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE, 0, __pyx_n_s_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(3, 1600, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD, 0, __pyx_n_s_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(3, 1632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON, 0, __pyx_n_s_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(3, 1664, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, 0, __pyx_n_s_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 1696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLINNECK, 0, __pyx_n_s_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(3, 1728, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER, 0, __pyx_n_s_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1760, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLKICKING, 0, __pyx_n_s_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(3, 1792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, 0, __pyx_n_s_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(3, 1824, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM, 0, __pyx_n_s_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(3, 1856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, 0, __pyx_n_s_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE, 0, __pyx_n_s_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(3, 1920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU, 0, __pyx_n_s_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1952, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW, 0, __pyx_n_s_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(3, 1984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2018 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLMATHOLD(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD, 0, __pyx_n_s_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2052 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, 0, __pyx_n_s_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_24, &__pyx_t_23, &__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_1); - /*try:*/ { + /* "talib/_func.pxi":2086 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_pandas, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 32, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_2) < 0) __PYX_ERR(1, 32, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR, 0, __pyx_n_s_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLONNECK, 0, __pyx_n_s_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(3, 2118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_18, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLPIERCING, 0, __pyx_n_s_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(3, 2150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, __pyx_t_18) < 0) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN, 0, __pyx_n_s_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(3, 2182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_pandas); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, __pyx_t_6) < 0) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS, 0, __pyx_n_s_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2214, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L24_try_end; - __pyx_L19_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + /* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES, 0, __pyx_n_s_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(3, 2246, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_18, &__pyx_t_2) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_18) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) + /* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR, 0, __pyx_n_s_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2278, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_27); - __Pyx_XGOTREF(__pyx_t_28); - /*try:*/ { + /* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE, 0, __pyx_n_s_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(3, 2310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_30 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_31 = (!__pyx_t_30); - if (!__pyx_t_31) { - } else { - __pyx_t_29 = __pyx_t_31; - goto __pyx_L36_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_31 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_pandas, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_29 = __pyx_t_31; - __pyx_L36_bool_binop_done:; - if (unlikely(__pyx_t_29)) { + /* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP, 0, __pyx_n_s_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(3, 2342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 41, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_Raise(__pyx_t_14, 0, 0, 0); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __PYX_ERR(1, 41, __pyx_L27_error) + /* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN, 0, __pyx_n_s_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(3, 2374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } + /* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH, 0, __pyx_n_s_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(3, 2406, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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; - goto __pyx_L34_try_end; - __pyx_L27_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __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; + /* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLTAKURI, 0, __pyx_n_s_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(3, 2438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); - if (__pyx_t_22) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L28_exception_handled; - } - goto __pyx_L29_except_error; + /* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP, 0, __pyx_n_s_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(3, 2470, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L29_except_error:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); - goto __pyx_L21_except_error; - __pyx_L28_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); - __pyx_L34_try_end:; - } + /* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING, 0, __pyx_n_s_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(3, 2502, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 46, __pyx_L21_except_error) + /* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR, 0, __pyx_n_s_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, Py_None) < 0) __PYX_ERR(1, 47, __pyx_L21_except_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L20_exception_handled; - } - goto __pyx_L21_except_error; + /* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER, 0, __pyx_n_s_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(3, 2566, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L21_except_error:; - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); - goto __pyx_L1_error; - __pyx_L20_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); - __pyx_L24_try_end:; - } + /* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 2598, __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_23, &__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_24); - /*try:*/ { + /* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, 0, __pyx_n_s_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2630, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_polars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_polars, __pyx_t_2) < 0) __PYX_ERR(1, 51, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CEIL, 0, __pyx_n_s_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(3, 2662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":2693 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CMO(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CMO, 0, __pyx_n_s_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, __pyx_t_6) < 0) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":2724 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CORREL(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, __pyx_t_18) < 0) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CORREL, 0, __pyx_n_s_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - goto __pyx_L43_try_end; - __pyx_L38_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + /* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181COS, 0, __pyx_n_s_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(3, 2755, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_6) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) + /* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183COSH, 0, __pyx_n_s_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(3, 2784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_27); - __Pyx_XGOTREF(__pyx_t_26); - /*try:*/ { + /* "talib/_func.pxi":2815 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DEMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_31 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_30 = (!__pyx_t_31); - if (!__pyx_t_30) { - } else { - __pyx_t_29 = __pyx_t_30; - goto __pyx_L55_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_30 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_polars, Py_NE)); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_29 = __pyx_t_30; - __pyx_L55_bool_binop_done:; - if (unlikely(__pyx_t_29)) { + /* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185DEMA, 0, __pyx_n_s_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 60, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_Raise(__pyx_t_14, 0, 0, 0); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __PYX_ERR(1, 60, __pyx_L46_error) + /* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187DIV, 0, __pyx_n_s_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(3, 2844, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - } + /* "talib/_func.pxi":2877 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - } - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; - __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - goto __pyx_L53_try_end; - __pyx_L46_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __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; + /* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DX, 0, __pyx_n_s_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); - if (__pyx_t_22) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L47_exception_handled; - } - goto __pyx_L48_except_error; + /* "talib/_func.pxi":2910 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ EMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191EMA, 0, __pyx_n_s_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193EXP, 0, __pyx_n_s_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(3, 2939, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L48_except_error:; - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); - goto __pyx_L40_except_error; - __pyx_L47_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); - __pyx_L53_try_end:; - } + /* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195FLOOR, 0, __pyx_n_s_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(3, 2968, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 65, __pyx_L40_except_error) + /* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD, 0, __pyx_n_s_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPERIOD, __pyx_t_3) < 0) __PYX_ERR(3, 2997, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, Py_None) < 0) __PYX_ERR(1, 66, __pyx_L40_except_error) - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L39_exception_handled; - } - goto __pyx_L40_except_error; + /* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE, 0, __pyx_n_s_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPHASE, __pyx_t_3) < 0) __PYX_ERR(3, 3026, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_L40_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - goto __pyx_L1_error; - __pyx_L39_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - __pyx_L43_try_end:; - } + /* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_PHASOR, 0, __pyx_n_s_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_PHASOR, __pyx_t_3) < 0) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_6) < 0) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_SINE, 0, __pyx_n_s_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_SINE, __pyx_t_3) < 0) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE, 0, __pyx_n_s_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDLINE, __pyx_t_3) < 0) __PYX_ERR(3, 3119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_kp_s_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_29 < 0))) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_29) { + /* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE, 0, __pyx_n_s_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDMODE, __pyx_t_3) < 0) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":3179 + * @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=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209KAMA, 0, __pyx_n_s_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - goto __pyx_L57; - } + /* "talib/_func.pxi":3210 + * @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 ): # <<<<<<<<<<<<<< + * """ LINEARREG(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - /*else*/ { - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211LINEARREG, 0, __pyx_n_s_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 85, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __pyx_L57:; + /* "talib/_func.pxi":3241 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_ANGLE(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__248); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_Function, __pyx_n_s_Function, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, __pyx_kp_s_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (__pyx_t_2 != __pyx_tuple__248) { - if (unlikely((PyDict_SetItemString(__pyx_t_18, "__orig_bases__", __pyx_tuple__248) < 0))) __PYX_ERR(1, 88, __pyx_L1_error) - } + /* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE, 0, __pyx_n_s_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_n_s_Function___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_init, __pyx_t_14) < 0) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3272 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_INTERCEPT(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_n_s_Function___local, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 130, __pyx_L1_error) + /* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT, 0, __pyx_n_s_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__local, __pyx_t_3) < 0) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(3, 3270, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_n_s_Function_info, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) + /* "talib/_func.pxi":3303 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_SLOPE(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3303, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + + /* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE, 0, __pyx_n_s_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(3, 3301, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_info, __pyx_t_14) < 0) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_n_s_Function_function_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) + /* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LN, 0, __pyx_n_s_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3332, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_function_flags, __pyx_t_3) < 0) __PYX_ERR(1, 179, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(3, 3332, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_n_s_Function_output_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 186, __pyx_L1_error) + /* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LOG10, 0, __pyx_n_s_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3361, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(3, 3361, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_flags, __pyx_t_14) < 0) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_n_s_Function_get_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 193, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3392 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MA(real[, timeperiod=?, matype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_n_s_Function_set_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 3390, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223MA, 0, __pyx_n_s_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_15) < 0) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_names); - if (unlikely(!__pyx_t_14)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_input_names); - } - if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_names); - if (unlikely(!__pyx_t_3)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_set_input_names); - } - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) + /* "talib/_func.pxi":3424 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) + * + */ + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3424, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error); + + /* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)) __PYX_ERR(3, 3422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error); - __pyx_t_14 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_2 = 0; __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225MACD, 0, __pyx_n_s_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_names, __pyx_t_3) < 0) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(3, 3422, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_n_s_Function_get_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3463 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): # <<<<<<<<<<<<<< + * """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + __pyx_t_19 = PyTuple_New(6); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_15)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_4)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227MACDEXT, 0, __pyx_n_s_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__168)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_18) < 0) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3505 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACDFIX(real[, signalperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MACDFIX, 0, __pyx_n_s_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__170)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_18) < 0) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3542 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): # <<<<<<<<<<<<<< + * """ MAMA(real[, fastlimit=?, slowlimit=?]) + * + */ + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + + /* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_18)) __PYX_ERR(3, 3540, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_19 = 0; + __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MAMA, 0, __pyx_n_s_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_19) < 0) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "talib/_func.pxi":3577 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) + * + */ + __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19)) __PYX_ERR(3, 3575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_4)) __PYX_ERR(3, 3575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error); + __pyx_t_19 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MAVP, 0, __pyx_n_s_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_18) < 0) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3612 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MAX, 0, __pyx_n_s_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_18) < 0) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3643 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAXINDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAXINDEX, 0, __pyx_n_s_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MEDPRICE, 0, __pyx_n_s_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3707 + * @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=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3705 + * 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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MFI, 0, __pyx_n_s_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_18) < 0) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3741 + * @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=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3739 + * 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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MIDPOINT, 0, __pyx_n_s_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_18) < 0) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3772 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIDPRICE(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MIDPRICE, 0, __pyx_n_s_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3804 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIN(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MIN, 0, __pyx_n_s_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_18) < 0) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3835 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MININDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_n_s_Function_set_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MININDEX, 0, __pyx_n_s_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_arrays); - if (unlikely(!__pyx_t_3)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_input_arrays); - } - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_arrays); - if (unlikely(!__pyx_t_7)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_input_arrays); - } - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_arrays, __pyx_t_7) < 0) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_func.pxi":3869 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_n_s_Function_get_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MINMAX, 0, __pyx_n_s_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_18) < 0) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_n_s_Function_set_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__268); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_func.pxi":3903 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAXINDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_parameters); - if (unlikely(!__pyx_t_7)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_parameters); - } - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_parameters); - if (unlikely(!__pyx_t_14)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_set_parameters); - } - if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_parameters, __pyx_t_14) < 0) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX, 0, __pyx_n_s_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_n_s_Function_set_function_args, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_function_args, __pyx_t_14) < 0) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3943 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_n_s_Function_lookback, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_lookback, __pyx_t_3) < 0) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MINUS_DI, 0, __pyx_n_s_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_n_s_Function_output_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_names, __pyx_t_14) < 0) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_func.pxi":3976 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DM(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_n_s_Function_outputs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_outputs, __pyx_t_3) < 0) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINUS_DM, 0, __pyx_n_s_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_n_s_Function_run, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__268); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_run, __pyx_t_3) < 0) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4008 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MOM(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_n_s_Function___call, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_call, __pyx_t_3) < 0) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MOM, 0, __pyx_n_s_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_18) < 0) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_n_s_Function___input_price_series_na, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__input_price_series_na, __pyx_t_3) < 0) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MULT, 0, __pyx_n_s_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_18) < 0) __PYX_ERR(3, 4037, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_n_s_Function___call_function, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__call_function, __pyx_t_3) < 0) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4070 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ NATR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_n_s_Function___check_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__check_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263NATR, 0, __pyx_n_s_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_18) < 0) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_n_s_Function___get_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__get_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265OBV, 0, __pyx_n_s_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_18) < 0) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_n_s_Function___repr, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(1, 545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4134 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_n_s_Function___unicode, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_unicode, __pyx_t_3) < 0) __PYX_ERR(1, 548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267PLUS_DI, 0, __pyx_n_s_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_n_s_Function___str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_str, __pyx_t_3) < 0) __PYX_ERR(1, 551, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4167 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DM(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_Function, __pyx_t_2, __pyx_t_18, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Function, __pyx_t_3) < 0) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269PLUS_DM, 0, __pyx_n_s_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4165, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable, 0, __pyx_n_s_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getGroupTable, __pyx_t_2) < 0) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable, 0, __pyx_n_s_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncTable, __pyx_t_2) < 0) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4199 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347__get_flags, 0, __pyx_n_s_get_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_flags, __pyx_t_2) < 0) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_t_19 = PyTuple_New(3); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 4197, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_15)) __PYX_ERR(3, 4197, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271PPO, 0, __pyx_n_s_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_4) < 0) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16777216, __pyx_kp_s_Output_scale_same_as_input) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_67108864, __pyx_kp_s_Output_is_over_volume) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_134217728, __pyx_kp_s_Function_has_an_unstable_period) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_268435456, __pyx_kp_s_Output_is_a_candlestick) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNC_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 614, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4232 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROC(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_open) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_n_s_high) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_n_s_low) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_close) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_volume) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_n_s_openInterest) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_n_s_timeStamp) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_INPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 622, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273ROC, 0, __pyx_n_s_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_4) < 0) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_kp_s_Dotted_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_kp_s_Dashed_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_Dot) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_Histogram) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_kp_s_Pattern_Bool) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_128, __pyx_kp_s_Strength_Pattern_200_100_Bearish) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_256, __pyx_kp_s_Output_can_be_positive) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_512, __pyx_kp_s_Output_can_be_negative) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1024, __pyx_kp_s_Output_can_be_zero) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2048, __pyx_kp_s_Values_represent_an_upper_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4096, __pyx_kp_s_Values_represent_a_lower_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_OUTPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4263 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCP(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo, 0, __pyx_n_s_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncInfo, __pyx_t_2) < 0) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275ROCP, 0, __pyx_n_s_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_4) < 0) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo, 0, __pyx_n_s_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4294 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, 0, __pyx_n_s_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOptInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277ROCR, 0, __pyx_n_s_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_4) < 0) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo, 0, __pyx_n_s_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOutputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 712, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4325 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR100(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs, 0, __pyx_n_s_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_defaults_and_docs, __pyx_t_2) < 0) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROCR100, 0, __pyx_n_s_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_4) < 0) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(4, 7, __pyx_L1_error) + /* "talib/_func.pxi":4356 + * @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 ): # <<<<<<<<<<<<<< + * """ RSI(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359stream_ACOS, 0, __pyx_n_s_stream_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__308)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 9, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ACOS, __pyx_t_2) < 0) __PYX_ERR(4, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4354 + * 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 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281RSI, 0, __pyx_n_s_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_4) < 0) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361stream_AD, 0, __pyx_n_s_stream_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__310)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 36, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AD, __pyx_t_2) < 0) __PYX_ERR(4, 36, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4387 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): # <<<<<<<<<<<<<< + * """ SAR(high, low[, acceleration=?, maximum=?]) + * + */ + __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_19 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363stream_ADD, 0, __pyx_n_s_stream_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__312)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADD, __pyx_t_2) < 0) __PYX_ERR(4, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 4385, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_19 = 0; + __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283SAR, 0, __pyx_n_s_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_19) < 0) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 105, __pyx_L1_error) + /* "talib/_func.pxi":4420 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): # <<<<<<<<<<<<<< + * """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) + * + */ + __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 105, __pyx_L1_error) + __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4420, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 103, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_18)) __PYX_ERR(3, 4418, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(4, 103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_14)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_3)) __PYX_ERR(3, 4418, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(4, 103, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 7, __pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error); + __pyx_t_19 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; __pyx_t_2 = 0; + __pyx_t_14 = 0; + __pyx_t_3 = 0; __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365stream_ADOSC, 0, __pyx_n_s_stream_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 103, __pyx_L1_error) + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285SAREXT, 0, __pyx_n_s_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADOSC, __pyx_t_6) < 0) __PYX_ERR(4, 103, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_6) < 0) __PYX_ERR(3, 4418, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 144, __pyx_L1_error) + /* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287SIN, 0, __pyx_n_s_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4457, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_6) < 0) __PYX_ERR(3, 4457, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 142, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367stream_ADX, 0, __pyx_n_s_stream_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__316)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 142, __pyx_L1_error) + /* "talib/_func.pxi":4486 + * 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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SINH, 0, __pyx_n_s_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4486, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADX, __pyx_t_6) < 0) __PYX_ERR(4, 142, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_6) < 0) __PYX_ERR(3, 4486, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 179, __pyx_L1_error) + /* "talib/_func.pxi":4517 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ SMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4517, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 177, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369stream_ADXR, 0, __pyx_n_s_stream_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 177, __pyx_L1_error) + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SMA, 0, __pyx_n_s_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADXR, __pyx_t_6) < 0) __PYX_ERR(4, 177, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(3, 4515, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 214, __pyx_L1_error) + /* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SQRT, 0, __pyx_n_s_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4546, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_6) < 0) __PYX_ERR(3, 4546, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4577 + * @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 ): # <<<<<<<<<<<<<< + * """ STDDEV(real[, timeperiod=?, nbdev=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 212, __pyx_L1_error) + /* "talib/_func.pxi":4575 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4575, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(4, 212, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_18)) __PYX_ERR(4, 212, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(3, 4575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295STDDEV, 0, __pyx_n_s_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_7) < 0) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_func.pxi":4609 + * @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=?]) + * + */ + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_func.pxi":4607 + * 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 ): + */ + __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_6)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 3, __pyx_t_14)) __PYX_ERR(3, 4607, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(4, 212, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 4, __pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_3 = 0; __pyx_t_6 = 0; - __pyx_t_18 = 0; + __pyx_t_14 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371stream_APO, 0, __pyx_n_s_stream_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 212, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297STOCH, 0, __pyx_n_s_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_APO, __pyx_t_2) < 0) __PYX_ERR(4, 212, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_2) < 0) __PYX_ERR(3, 4607, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 245, __pyx_L1_error) + /* "talib/_func.pxi":4649 + * @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=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4649, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* "talib/_func.pxi":4647 + * 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 ): + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 243, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(3, 4647, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 4647, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373stream_AROON, 0, __pyx_n_s_stream_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 243, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROON, __pyx_t_2) < 0) __PYX_ERR(4, 243, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_18 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299STOCHF, 0, __pyx_n_s_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_14) < 0) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 280, __pyx_L1_error) + /* "talib/_func.pxi":4687 + * @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=?]) + * + */ + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4687, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 278, __pyx_L1_error) + /* "talib/_func.pxi":4685 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(3, 4685, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6)) __PYX_ERR(3, 4685, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_18)) __PYX_ERR(3, 4685, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 278, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error); + __pyx_t_14 = 0; + __pyx_t_6 = 0; + __pyx_t_18 = 0; __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC, 0, __pyx_n_s_stream_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__323)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 278, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STOCHRSI, 0, __pyx_n_s_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROONOSC, __pyx_t_2) < 0) __PYX_ERR(4, 278, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377stream_ASIN, 0, __pyx_n_s_stream_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ASIN, __pyx_t_2) < 0) __PYX_ERR(4, 310, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_2) < 0) __PYX_ERR(3, 4685, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379stream_ATAN, 0, __pyx_n_s_stream_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 337, __pyx_L1_error) + /* "talib/_func.pxi":4722 + * 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 ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303SUB, 0, __pyx_n_s_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4722, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATAN, __pyx_t_2) < 0) __PYX_ERR(4, 337, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_2) < 0) __PYX_ERR(3, 4722, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 366, __pyx_L1_error) + /* "talib/_func.pxi":4755 + * @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=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4755, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 364, __pyx_L1_error) + /* "talib/_func.pxi":4753 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 364, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381stream_ATR, 0, __pyx_n_s_stream_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__326)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 364, __pyx_L1_error) + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305SUM, 0, __pyx_n_s_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATR, __pyx_t_2) < 0) __PYX_ERR(4, 364, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE, 0, __pyx_n_s_stream_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AVGPRICE, __pyx_t_2) < 0) __PYX_ERR(4, 399, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_2) < 0) __PYX_ERR(3, 4753, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 437, __pyx_L1_error) + /* "talib/_func.pxi":4786 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): # <<<<<<<<<<<<<< + * """ T3(real[, timeperiod=?, vfactor=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 437, __pyx_L1_error) + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4786, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 437, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = PyTuple_New(4); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + /* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2)) __PYX_ERR(4, 435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 4784, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_3)) __PYX_ERR(4, 435, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_18)) __PYX_ERR(4, 435, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_6)) __PYX_ERR(4, 435, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error); __pyx_t_2 = 0; __pyx_t_3 = 0; - __pyx_t_18 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385stream_BBANDS, 0, __pyx_n_s_stream_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__330)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BBANDS, __pyx_t_6) < 0) __PYX_ERR(4, 435, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 473, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387stream_BETA, 0, __pyx_n_s_stream_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BETA, __pyx_t_6) < 0) __PYX_ERR(4, 473, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389stream_BOP, 0, __pyx_n_s_stream_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__333)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 506, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BOP, __pyx_t_6) < 0) __PYX_ERR(4, 506, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 542, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391stream_CCI, 0, __pyx_n_s_stream_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CCI, __pyx_t_6) < 0) __PYX_ERR(4, 542, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS, 0, __pyx_n_s_stream_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__336)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL2CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, 0, __pyx_n_s_stream_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 613, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3BLACKCROWS, __pyx_t_6) < 0) __PYX_ERR(4, 613, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE, 0, __pyx_n_s_stream_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__338)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3INSIDE, __pyx_t_6) < 0) __PYX_ERR(4, 649, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, 0, __pyx_n_s_stream_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__339)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3LINESTRIKE, __pyx_t_6) < 0) __PYX_ERR(4, 685, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE, 0, __pyx_n_s_stream_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 721, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3OUTSIDE, __pyx_t_6) < 0) __PYX_ERR(4, 721, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, 0, __pyx_n_s_stream_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__341)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 757, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_t_6) < 0) __PYX_ERR(4, 757, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, 0, __pyx_n_s_stream_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 793, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_t_6) < 0) __PYX_ERR(4, 793, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 831, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 829, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, 0, __pyx_n_s_stream_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 829, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLABANDONEDBABY, __pyx_t_6) < 0) __PYX_ERR(4, 829, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, 0, __pyx_n_s_stream_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_t_6) < 0) __PYX_ERR(4, 867, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD, 0, __pyx_n_s_stream_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBELTHOLD, __pyx_t_6) < 0) __PYX_ERR(4, 903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY, 0, __pyx_n_s_stream_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBREAKAWAY, __pyx_t_6) < 0) __PYX_ERR(4, 939, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, 0, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 975, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_t_6) < 0) __PYX_ERR(4, 975, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, 0, __pyx_n_s_stream_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1011, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_t_6) < 0) __PYX_ERR(4, 1011, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, 0, __pyx_n_s_stream_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1047, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_t_6) < 0) __PYX_ERR(4, 1047, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1083, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, 0, __pyx_n_s_stream_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1083, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_t_6) < 0) __PYX_ERR(4, 1083, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI, 0, __pyx_n_s_stream_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__352)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1121, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR, 0, __pyx_n_s_stream_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1157, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1157, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, 0, __pyx_n_s_stream_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1193, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING, 0, __pyx_n_s_stream_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1229, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLENGULFING, __pyx_t_6) < 0) __PYX_ERR(4, 1229, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1267, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1265, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, 0, __pyx_n_s_stream_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1265, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1265, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1303, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, 0, __pyx_n_s_stream_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1303, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__358)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1341, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_t_6) < 0) __PYX_ERR(4, 1341, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, 0, __pyx_n_s_stream_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1377, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1377, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER, 0, __pyx_n_s_stream_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__360)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1413, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHAMMER, __pyx_t_6) < 0) __PYX_ERR(4, 1413, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN, 0, __pyx_n_s_stream_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1449, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHANGINGMAN, __pyx_t_6) < 0) __PYX_ERR(4, 1449, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI, 0, __pyx_n_s_stream_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__362)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1485, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMI, __pyx_t_6) < 0) __PYX_ERR(4, 1485, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS, 0, __pyx_n_s_stream_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__363)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1521, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMICROSS, __pyx_t_6) < 0) __PYX_ERR(4, 1521, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE, 0, __pyx_n_s_stream_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1557, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIGHWAVE, __pyx_t_6) < 0) __PYX_ERR(4, 1557, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE, 0, __pyx_n_s_stream_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__365)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1593, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKE, __pyx_t_6) < 0) __PYX_ERR(4, 1593, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, 0, __pyx_n_s_stream_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__366)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1629, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_t_6) < 0) __PYX_ERR(4, 1629, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, 0, __pyx_n_s_stream_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_t_6) < 0) __PYX_ERR(4, 1665, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, 0, __pyx_n_s_stream_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__368)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1701, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 1701, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK, 0, __pyx_n_s_stream_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1737, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINNECK, __pyx_t_6) < 0) __PYX_ERR(4, 1737, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, 0, __pyx_n_s_stream_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__370)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_t_6) < 0) __PYX_ERR(4, 1773, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING, 0, __pyx_n_s_stream_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__371)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1809, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKING, __pyx_t_6) < 0) __PYX_ERR(4, 1809, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, 0, __pyx_n_s_stream_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_t_6) < 0) __PYX_ERR(4, 1845, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, 0, __pyx_n_s_stream_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1881, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_t_6) < 0) __PYX_ERR(4, 1881, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, 0, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1917, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1917, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE, 0, __pyx_n_s_stream_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__375)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1953, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLINE, __pyx_t_6) < 0) __PYX_ERR(4, 1953, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU, 0, __pyx_n_s_stream_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1989, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMARUBOZU, __pyx_t_6) < 0) __PYX_ERR(4, 1989, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, 0, __pyx_n_s_stream_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__377)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATCHINGLOW, __pyx_t_6) < 0) __PYX_ERR(4, 2025, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2063, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2061, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD, 0, __pyx_n_s_stream_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__378)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATHOLD, __pyx_t_6) < 0) __PYX_ERR(4, 2061, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2099, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, 0, __pyx_n_s_stream_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2099, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2099, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2139, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2137, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, 0, __pyx_n_s_stream_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__380)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2137, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2137, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK, 0, __pyx_n_s_stream_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2175, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLONNECK, __pyx_t_6) < 0) __PYX_ERR(4, 2175, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING, 0, __pyx_n_s_stream_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2211, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLPIERCING, __pyx_t_6) < 0) __PYX_ERR(4, 2211, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, 0, __pyx_n_s_stream_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2247, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_t_6) < 0) __PYX_ERR(4, 2247, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, 0, __pyx_n_s_stream_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2283, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_t_6) < 0) __PYX_ERR(4, 2283, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, 0, __pyx_n_s_stream_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2319, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_t_6) < 0) __PYX_ERR(4, 2319, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, 0, __pyx_n_s_stream_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2355, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2355, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE, 0, __pyx_n_s_stream_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2391, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHORTLINE, __pyx_t_6) < 0) __PYX_ERR(4, 2391, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, 0, __pyx_n_s_stream_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__388)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2427, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSPINNINGTOP, __pyx_t_6) < 0) __PYX_ERR(4, 2427, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, 0, __pyx_n_s_stream_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__389)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_t_6) < 0) __PYX_ERR(4, 2463, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, 0, __pyx_n_s_stream_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2499, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_t_6) < 0) __PYX_ERR(4, 2499, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI, 0, __pyx_n_s_stream_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTAKURI, __pyx_t_6) < 0) __PYX_ERR(4, 2535, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP, 0, __pyx_n_s_stream_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2571, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTASUKIGAP, __pyx_t_6) < 0) __PYX_ERR(4, 2571, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING, 0, __pyx_n_s_stream_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTHRUSTING, __pyx_t_6) < 0) __PYX_ERR(4, 2607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR, 0, __pyx_n_s_stream_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTRISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2643, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, 0, __pyx_n_s_stream_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__395)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_t_6) < 0) __PYX_ERR(4, 2679, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2715, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 2715, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, 0, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2751, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_t_6) < 0) __PYX_ERR(4, 2751, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CEIL, 0, __pyx_n_s_stream_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__398)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2787, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CEIL, __pyx_t_6) < 0) __PYX_ERR(4, 2787, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2814, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CMO, 0, __pyx_n_s_stream_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2814, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CMO, __pyx_t_6) < 0) __PYX_ERR(4, 2814, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2843, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CORREL, 0, __pyx_n_s_stream_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__401)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2843, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CORREL, __pyx_t_6) < 0) __PYX_ERR(4, 2843, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307T3, 0, __pyx_n_s_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_COS, 0, __pyx_n_s_stream_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__402)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COS, __pyx_t_6) < 0) __PYX_ERR(4, 2876, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309TAN, 0, __pyx_n_s_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(3, 4816, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_COSH, 0, __pyx_n_s_stream_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__403)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COSH, __pyx_t_6) < 0) __PYX_ERR(4, 2903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311TANH, 0, __pyx_n_s_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(3, 4845, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":4876 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TEMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2930, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_DEMA, 0, __pyx_n_s_stream_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DEMA, __pyx_t_6) < 0) __PYX_ERR(4, 2930, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313TEMA, 0, __pyx_n_s_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_DIV, 0, __pyx_n_s_stream_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__405)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2959, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DIV, __pyx_t_6) < 0) __PYX_ERR(4, 2959, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TRANGE, 0, __pyx_n_s_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2992, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":4938 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2990, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_DX, 0, __pyx_n_s_stream_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2990, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DX, __pyx_t_6) < 0) __PYX_ERR(4, 2990, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TRIMA, 0, __pyx_n_s_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3027, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_func.pxi":4969 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIX(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3025, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_EMA, 0, __pyx_n_s_stream_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__407)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EMA, __pyx_t_6) < 0) __PYX_ERR(4, 3025, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TRIX, 0, __pyx_n_s_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_EXP, 0, __pyx_n_s_stream_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3054, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EXP, __pyx_t_6) < 0) __PYX_ERR(4, 3054, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5000 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TSF(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_FLOOR, 0, __pyx_n_s_stream_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__409)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3081, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_FLOOR, __pyx_t_6) < 0) __PYX_ERR(4, 3081, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TSF, 0, __pyx_n_s_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD, 0, __pyx_n_s_stream_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3108, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPERIOD, __pyx_t_6) < 0) __PYX_ERR(4, 3108, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TYPPRICE, 0, __pyx_n_s_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(3, 5029, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE, 0, __pyx_n_s_stream_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__411)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3135, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPHASE, __pyx_t_6) < 0) __PYX_ERR(4, 3135, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_func.pxi":5062 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): # <<<<<<<<<<<<<< + * """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR, 0, __pyx_n_s_stream_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3162, __pyx_L1_error) + /* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5060, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_PHASOR, __pyx_t_6) < 0) __PYX_ERR(4, 3162, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3)) __PYX_ERR(3, 5060, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 5060, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_18 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325ULTOSC, 0, __pyx_n_s_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_6); __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_2) < 0) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE, 0, __pyx_n_s_stream_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__415)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3192, __pyx_L1_error) + /* "talib/_func.pxi":5097 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): # <<<<<<<<<<<<<< + * """ VAR(real[, timeperiod=?, nbdev=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5097, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_SINE, __pyx_t_6) < 0) __PYX_ERR(4, 3192, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE, 0, __pyx_n_s_stream_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3222, __pyx_L1_error) + /* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 5095, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327VAR, 0, __pyx_n_s_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDLINE, __pyx_t_6) < 0) __PYX_ERR(4, 3222, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_6) < 0) __PYX_ERR(3, 5095, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE, 0, __pyx_n_s_stream_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3249, __pyx_L1_error) + /* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329WCLPRICE, 0, __pyx_n_s_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5127, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDMODE, __pyx_t_6) < 0) __PYX_ERR(4, 3249, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_6) < 0) __PYX_ERR(3, 5127, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3278, __pyx_L1_error) + /* "talib/_func.pxi":5160 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WILLR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5160, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + /* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3276, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_KAMA, 0, __pyx_n_s_stream_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3276, __pyx_L1_error) + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331WILLR, 0, __pyx_n_s_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__238)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_KAMA, __pyx_t_6) < 0) __PYX_ERR(4, 3276, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_6) < 0) __PYX_ERR(3, 5158, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3307, __pyx_L1_error) + /* "talib/_func.pxi":5193 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5193, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3305, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + /* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3305, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG, 0, __pyx_n_s_stream_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__420)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3305, __pyx_L1_error) + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333WMA, 0, __pyx_n_s_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG, __pyx_t_6) < 0) __PYX_ERR(4, 3305, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(3, 5191, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3334, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3334, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, 0, __pyx_n_s_stream_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3334, __pyx_L1_error) + /* "talib/_func.pxi":5222 + * return outreal + * + * __TA_FUNCTION_NAMES__ = ["ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","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","CMO","CORREL","COS","COSH","DEMA","DIV","DX","EMA","EXP","FLOOR","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","KAMA","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MAVP","MAX","MAXINDEX","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","OBV","PLUS_DI","PLUS_DM","PPO","ROC","ROCP","ROCR","ROCR100","RSI","SAR","SAREXT","SIN","SINH","SMA","SQRT","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TYPPRICE","ULTOSC","VAR","WCLPRICE","WILLR","WMA"] # <<<<<<<<<<<<<< + */ + __pyx_t_6 = PyList_New(158); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5222, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_ANGLE, __pyx_t_6) < 0) __PYX_ERR(4, 3334, __pyx_L1_error) + __Pyx_INCREF(__pyx_n_s_ACOS); + __Pyx_GIVEREF(__pyx_n_s_ACOS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_ACOS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AD); + __Pyx_GIVEREF(__pyx_n_s_AD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_AD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADD); + __Pyx_GIVEREF(__pyx_n_s_ADD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 2, __pyx_n_s_ADD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADOSC); + __Pyx_GIVEREF(__pyx_n_s_ADOSC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 3, __pyx_n_s_ADOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADX); + __Pyx_GIVEREF(__pyx_n_s_ADX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 4, __pyx_n_s_ADX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADXR); + __Pyx_GIVEREF(__pyx_n_s_ADXR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 5, __pyx_n_s_ADXR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_APO); + __Pyx_GIVEREF(__pyx_n_s_APO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 6, __pyx_n_s_APO)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AROON); + __Pyx_GIVEREF(__pyx_n_s_AROON); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 7, __pyx_n_s_AROON)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AROONOSC); + __Pyx_GIVEREF(__pyx_n_s_AROONOSC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 8, __pyx_n_s_AROONOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ASIN); + __Pyx_GIVEREF(__pyx_n_s_ASIN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 9, __pyx_n_s_ASIN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATAN); + __Pyx_GIVEREF(__pyx_n_s_ATAN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 10, __pyx_n_s_ATAN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATR); + __Pyx_GIVEREF(__pyx_n_s_ATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 11, __pyx_n_s_ATR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AVGPRICE); + __Pyx_GIVEREF(__pyx_n_s_AVGPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 12, __pyx_n_s_AVGPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BBANDS); + __Pyx_GIVEREF(__pyx_n_s_BBANDS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 13, __pyx_n_s_BBANDS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BETA); + __Pyx_GIVEREF(__pyx_n_s_BETA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 14, __pyx_n_s_BETA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BOP); + __Pyx_GIVEREF(__pyx_n_s_BOP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 15, __pyx_n_s_BOP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CCI); + __Pyx_GIVEREF(__pyx_n_s_CCI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 16, __pyx_n_s_CCI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL2CROWS); + __Pyx_GIVEREF(__pyx_n_s_CDL2CROWS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 17, __pyx_n_s_CDL2CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3BLACKCROWS); + __Pyx_GIVEREF(__pyx_n_s_CDL3BLACKCROWS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 18, __pyx_n_s_CDL3BLACKCROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3INSIDE); + __Pyx_GIVEREF(__pyx_n_s_CDL3INSIDE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 19, __pyx_n_s_CDL3INSIDE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3LINESTRIKE); + __Pyx_GIVEREF(__pyx_n_s_CDL3LINESTRIKE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 20, __pyx_n_s_CDL3LINESTRIKE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3OUTSIDE); + __Pyx_GIVEREF(__pyx_n_s_CDL3OUTSIDE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 21, __pyx_n_s_CDL3OUTSIDE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3STARSINSOUTH); + __Pyx_GIVEREF(__pyx_n_s_CDL3STARSINSOUTH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 22, __pyx_n_s_CDL3STARSINSOUTH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL3WHITESOLDIERS); + __Pyx_GIVEREF(__pyx_n_s_CDL3WHITESOLDIERS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 23, __pyx_n_s_CDL3WHITESOLDIERS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLABANDONEDBABY); + __Pyx_GIVEREF(__pyx_n_s_CDLABANDONEDBABY); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 24, __pyx_n_s_CDLABANDONEDBABY)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLADVANCEBLOCK); + __Pyx_GIVEREF(__pyx_n_s_CDLADVANCEBLOCK); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 25, __pyx_n_s_CDLADVANCEBLOCK)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLBELTHOLD); + __Pyx_GIVEREF(__pyx_n_s_CDLBELTHOLD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 26, __pyx_n_s_CDLBELTHOLD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLBREAKAWAY); + __Pyx_GIVEREF(__pyx_n_s_CDLBREAKAWAY); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 27, __pyx_n_s_CDLBREAKAWAY)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLCLOSINGMARUBOZU); + __Pyx_GIVEREF(__pyx_n_s_CDLCLOSINGMARUBOZU); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 28, __pyx_n_s_CDLCLOSINGMARUBOZU)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLCONCEALBABYSWALL); + __Pyx_GIVEREF(__pyx_n_s_CDLCONCEALBABYSWALL); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 29, __pyx_n_s_CDLCONCEALBABYSWALL)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLCOUNTERATTACK); + __Pyx_GIVEREF(__pyx_n_s_CDLCOUNTERATTACK); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 30, __pyx_n_s_CDLCOUNTERATTACK)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLDARKCLOUDCOVER); + __Pyx_GIVEREF(__pyx_n_s_CDLDARKCLOUDCOVER); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 31, __pyx_n_s_CDLDARKCLOUDCOVER)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLDOJI); + __Pyx_GIVEREF(__pyx_n_s_CDLDOJI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 32, __pyx_n_s_CDLDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLDOJISTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLDOJISTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 33, __pyx_n_s_CDLDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLDRAGONFLYDOJI); + __Pyx_GIVEREF(__pyx_n_s_CDLDRAGONFLYDOJI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 34, __pyx_n_s_CDLDRAGONFLYDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLENGULFING); + __Pyx_GIVEREF(__pyx_n_s_CDLENGULFING); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 35, __pyx_n_s_CDLENGULFING)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLEVENINGDOJISTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGDOJISTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 36, __pyx_n_s_CDLEVENINGDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLEVENINGSTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLEVENINGSTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 37, __pyx_n_s_CDLEVENINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLGAPSIDESIDEWHITE); + __Pyx_GIVEREF(__pyx_n_s_CDLGAPSIDESIDEWHITE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 38, __pyx_n_s_CDLGAPSIDESIDEWHITE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLGRAVESTONEDOJI); + __Pyx_GIVEREF(__pyx_n_s_CDLGRAVESTONEDOJI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 39, __pyx_n_s_CDLGRAVESTONEDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHAMMER); + __Pyx_GIVEREF(__pyx_n_s_CDLHAMMER); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 40, __pyx_n_s_CDLHAMMER)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHANGINGMAN); + __Pyx_GIVEREF(__pyx_n_s_CDLHANGINGMAN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 41, __pyx_n_s_CDLHANGINGMAN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHARAMI); + __Pyx_GIVEREF(__pyx_n_s_CDLHARAMI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 42, __pyx_n_s_CDLHARAMI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHARAMICROSS); + __Pyx_GIVEREF(__pyx_n_s_CDLHARAMICROSS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 43, __pyx_n_s_CDLHARAMICROSS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHIGHWAVE); + __Pyx_GIVEREF(__pyx_n_s_CDLHIGHWAVE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 44, __pyx_n_s_CDLHIGHWAVE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHIKKAKE); + __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 45, __pyx_n_s_CDLHIKKAKE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHIKKAKEMOD); + __Pyx_GIVEREF(__pyx_n_s_CDLHIKKAKEMOD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 46, __pyx_n_s_CDLHIKKAKEMOD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLHOMINGPIGEON); + __Pyx_GIVEREF(__pyx_n_s_CDLHOMINGPIGEON); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 47, __pyx_n_s_CDLHOMINGPIGEON)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLIDENTICAL3CROWS); + __Pyx_GIVEREF(__pyx_n_s_CDLIDENTICAL3CROWS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 48, __pyx_n_s_CDLIDENTICAL3CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLINNECK); + __Pyx_GIVEREF(__pyx_n_s_CDLINNECK); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 49, __pyx_n_s_CDLINNECK)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLINVERTEDHAMMER); + __Pyx_GIVEREF(__pyx_n_s_CDLINVERTEDHAMMER); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 50, __pyx_n_s_CDLINVERTEDHAMMER)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLKICKING); + __Pyx_GIVEREF(__pyx_n_s_CDLKICKING); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 51, __pyx_n_s_CDLKICKING)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLKICKINGBYLENGTH); + __Pyx_GIVEREF(__pyx_n_s_CDLKICKINGBYLENGTH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 52, __pyx_n_s_CDLKICKINGBYLENGTH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLLADDERBOTTOM); + __Pyx_GIVEREF(__pyx_n_s_CDLLADDERBOTTOM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 53, __pyx_n_s_CDLLADDERBOTTOM)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLLONGLEGGEDDOJI); + __Pyx_GIVEREF(__pyx_n_s_CDLLONGLEGGEDDOJI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 54, __pyx_n_s_CDLLONGLEGGEDDOJI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLLONGLINE); + __Pyx_GIVEREF(__pyx_n_s_CDLLONGLINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 55, __pyx_n_s_CDLLONGLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLMARUBOZU); + __Pyx_GIVEREF(__pyx_n_s_CDLMARUBOZU); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 56, __pyx_n_s_CDLMARUBOZU)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLMATCHINGLOW); + __Pyx_GIVEREF(__pyx_n_s_CDLMATCHINGLOW); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 57, __pyx_n_s_CDLMATCHINGLOW)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLMATHOLD); + __Pyx_GIVEREF(__pyx_n_s_CDLMATHOLD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 58, __pyx_n_s_CDLMATHOLD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLMORNINGDOJISTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGDOJISTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 59, __pyx_n_s_CDLMORNINGDOJISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLMORNINGSTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLMORNINGSTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 60, __pyx_n_s_CDLMORNINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLONNECK); + __Pyx_GIVEREF(__pyx_n_s_CDLONNECK); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 61, __pyx_n_s_CDLONNECK)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLPIERCING); + __Pyx_GIVEREF(__pyx_n_s_CDLPIERCING); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 62, __pyx_n_s_CDLPIERCING)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLRICKSHAWMAN); + __Pyx_GIVEREF(__pyx_n_s_CDLRICKSHAWMAN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 63, __pyx_n_s_CDLRICKSHAWMAN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLRISEFALL3METHODS); + __Pyx_GIVEREF(__pyx_n_s_CDLRISEFALL3METHODS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 64, __pyx_n_s_CDLRISEFALL3METHODS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSEPARATINGLINES); + __Pyx_GIVEREF(__pyx_n_s_CDLSEPARATINGLINES); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 65, __pyx_n_s_CDLSEPARATINGLINES)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSHOOTINGSTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLSHOOTINGSTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 66, __pyx_n_s_CDLSHOOTINGSTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSHORTLINE); + __Pyx_GIVEREF(__pyx_n_s_CDLSHORTLINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 67, __pyx_n_s_CDLSHORTLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSPINNINGTOP); + __Pyx_GIVEREF(__pyx_n_s_CDLSPINNINGTOP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 68, __pyx_n_s_CDLSPINNINGTOP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSTALLEDPATTERN); + __Pyx_GIVEREF(__pyx_n_s_CDLSTALLEDPATTERN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 69, __pyx_n_s_CDLSTALLEDPATTERN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLSTICKSANDWICH); + __Pyx_GIVEREF(__pyx_n_s_CDLSTICKSANDWICH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 70, __pyx_n_s_CDLSTICKSANDWICH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLTAKURI); + __Pyx_GIVEREF(__pyx_n_s_CDLTAKURI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 71, __pyx_n_s_CDLTAKURI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLTASUKIGAP); + __Pyx_GIVEREF(__pyx_n_s_CDLTASUKIGAP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 72, __pyx_n_s_CDLTASUKIGAP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLTHRUSTING); + __Pyx_GIVEREF(__pyx_n_s_CDLTHRUSTING); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 73, __pyx_n_s_CDLTHRUSTING)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLTRISTAR); + __Pyx_GIVEREF(__pyx_n_s_CDLTRISTAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 74, __pyx_n_s_CDLTRISTAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLUNIQUE3RIVER); + __Pyx_GIVEREF(__pyx_n_s_CDLUNIQUE3RIVER); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 75, __pyx_n_s_CDLUNIQUE3RIVER)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLUPSIDEGAP2CROWS); + __Pyx_GIVEREF(__pyx_n_s_CDLUPSIDEGAP2CROWS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 76, __pyx_n_s_CDLUPSIDEGAP2CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDLXSIDEGAP3METHODS); + __Pyx_GIVEREF(__pyx_n_s_CDLXSIDEGAP3METHODS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 77, __pyx_n_s_CDLXSIDEGAP3METHODS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CEIL); + __Pyx_GIVEREF(__pyx_n_s_CEIL); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 78, __pyx_n_s_CEIL)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CMO); + __Pyx_GIVEREF(__pyx_n_s_CMO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 79, __pyx_n_s_CMO)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CORREL); + __Pyx_GIVEREF(__pyx_n_s_CORREL); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 80, __pyx_n_s_CORREL)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_COS); + __Pyx_GIVEREF(__pyx_n_s_COS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 81, __pyx_n_s_COS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_COSH); + __Pyx_GIVEREF(__pyx_n_s_COSH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 82, __pyx_n_s_COSH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_DEMA); + __Pyx_GIVEREF(__pyx_n_s_DEMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 83, __pyx_n_s_DEMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_DIV); + __Pyx_GIVEREF(__pyx_n_s_DIV); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 84, __pyx_n_s_DIV)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_DX); + __Pyx_GIVEREF(__pyx_n_s_DX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 85, __pyx_n_s_DX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_EMA); + __Pyx_GIVEREF(__pyx_n_s_EMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 86, __pyx_n_s_EMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_EXP); + __Pyx_GIVEREF(__pyx_n_s_EXP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 87, __pyx_n_s_EXP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_FLOOR); + __Pyx_GIVEREF(__pyx_n_s_FLOOR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 88, __pyx_n_s_FLOOR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 89, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 90, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_PHASOR); + __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 91, __pyx_n_s_HT_PHASOR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_SINE); + __Pyx_GIVEREF(__pyx_n_s_HT_SINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 92, __pyx_n_s_HT_SINE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 93, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 94, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_KAMA); + __Pyx_GIVEREF(__pyx_n_s_KAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 95, __pyx_n_s_KAMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LINEARREG); + __Pyx_GIVEREF(__pyx_n_s_LINEARREG); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 96, __pyx_n_s_LINEARREG)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LINEARREG_ANGLE); + __Pyx_GIVEREF(__pyx_n_s_LINEARREG_ANGLE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 97, __pyx_n_s_LINEARREG_ANGLE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LINEARREG_INTERCEPT); + __Pyx_GIVEREF(__pyx_n_s_LINEARREG_INTERCEPT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 98, __pyx_n_s_LINEARREG_INTERCEPT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LINEARREG_SLOPE); + __Pyx_GIVEREF(__pyx_n_s_LINEARREG_SLOPE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 99, __pyx_n_s_LINEARREG_SLOPE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LN); + __Pyx_GIVEREF(__pyx_n_s_LN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 100, __pyx_n_s_LN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_LOG10); + __Pyx_GIVEREF(__pyx_n_s_LOG10); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 101, __pyx_n_s_LOG10)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MA); + __Pyx_GIVEREF(__pyx_n_s_MA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 102, __pyx_n_s_MA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MACD); + __Pyx_GIVEREF(__pyx_n_s_MACD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 103, __pyx_n_s_MACD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MACDEXT); + __Pyx_GIVEREF(__pyx_n_s_MACDEXT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 104, __pyx_n_s_MACDEXT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MACDFIX); + __Pyx_GIVEREF(__pyx_n_s_MACDFIX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 105, __pyx_n_s_MACDFIX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAMA); + __Pyx_GIVEREF(__pyx_n_s_MAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 106, __pyx_n_s_MAMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAVP); + __Pyx_GIVEREF(__pyx_n_s_MAVP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 107, __pyx_n_s_MAVP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAX); + __Pyx_GIVEREF(__pyx_n_s_MAX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 108, __pyx_n_s_MAX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAXINDEX); + __Pyx_GIVEREF(__pyx_n_s_MAXINDEX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 109, __pyx_n_s_MAXINDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MEDPRICE); + __Pyx_GIVEREF(__pyx_n_s_MEDPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 110, __pyx_n_s_MEDPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MFI); + __Pyx_GIVEREF(__pyx_n_s_MFI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 111, __pyx_n_s_MFI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MIDPOINT); + __Pyx_GIVEREF(__pyx_n_s_MIDPOINT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 112, __pyx_n_s_MIDPOINT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MIDPRICE); + __Pyx_GIVEREF(__pyx_n_s_MIDPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 113, __pyx_n_s_MIDPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MIN); + __Pyx_GIVEREF(__pyx_n_s_MIN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 114, __pyx_n_s_MIN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MININDEX); + __Pyx_GIVEREF(__pyx_n_s_MININDEX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 115, __pyx_n_s_MININDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINMAX); + __Pyx_GIVEREF(__pyx_n_s_MINMAX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 116, __pyx_n_s_MINMAX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINMAXINDEX); + __Pyx_GIVEREF(__pyx_n_s_MINMAXINDEX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 117, __pyx_n_s_MINMAXINDEX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DI); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 118, __pyx_n_s_MINUS_DI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DM); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 119, __pyx_n_s_MINUS_DM)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MOM); + __Pyx_GIVEREF(__pyx_n_s_MOM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 120, __pyx_n_s_MOM)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MULT); + __Pyx_GIVEREF(__pyx_n_s_MULT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 121, __pyx_n_s_MULT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_NATR); + __Pyx_GIVEREF(__pyx_n_s_NATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 122, __pyx_n_s_NATR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_OBV); + __Pyx_GIVEREF(__pyx_n_s_OBV); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 123, __pyx_n_s_OBV)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DI); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 124, __pyx_n_s_PLUS_DI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DM); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 125, __pyx_n_s_PLUS_DM)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PPO); + __Pyx_GIVEREF(__pyx_n_s_PPO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 126, __pyx_n_s_PPO)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ROC); + __Pyx_GIVEREF(__pyx_n_s_ROC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 127, __pyx_n_s_ROC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ROCP); + __Pyx_GIVEREF(__pyx_n_s_ROCP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 128, __pyx_n_s_ROCP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ROCR); + __Pyx_GIVEREF(__pyx_n_s_ROCR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 129, __pyx_n_s_ROCR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ROCR100); + __Pyx_GIVEREF(__pyx_n_s_ROCR100); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 130, __pyx_n_s_ROCR100)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_RSI); + __Pyx_GIVEREF(__pyx_n_s_RSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 131, __pyx_n_s_RSI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SAR); + __Pyx_GIVEREF(__pyx_n_s_SAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 132, __pyx_n_s_SAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SAREXT); + __Pyx_GIVEREF(__pyx_n_s_SAREXT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 133, __pyx_n_s_SAREXT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SIN); + __Pyx_GIVEREF(__pyx_n_s_SIN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 134, __pyx_n_s_SIN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SINH); + __Pyx_GIVEREF(__pyx_n_s_SINH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 135, __pyx_n_s_SINH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SMA); + __Pyx_GIVEREF(__pyx_n_s_SMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 136, __pyx_n_s_SMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SQRT); + __Pyx_GIVEREF(__pyx_n_s_SQRT); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 137, __pyx_n_s_SQRT)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STDDEV); + __Pyx_GIVEREF(__pyx_n_s_STDDEV); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 138, __pyx_n_s_STDDEV)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STOCH); + __Pyx_GIVEREF(__pyx_n_s_STOCH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 139, __pyx_n_s_STOCH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STOCHF); + __Pyx_GIVEREF(__pyx_n_s_STOCHF); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 140, __pyx_n_s_STOCHF)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STOCHRSI); + __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 141, __pyx_n_s_STOCHRSI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SUB); + __Pyx_GIVEREF(__pyx_n_s_SUB); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 142, __pyx_n_s_SUB)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_SUM); + __Pyx_GIVEREF(__pyx_n_s_SUM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 143, __pyx_n_s_SUM)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_T3); + __Pyx_GIVEREF(__pyx_n_s_T3); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 144, __pyx_n_s_T3)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TAN); + __Pyx_GIVEREF(__pyx_n_s_TAN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 145, __pyx_n_s_TAN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TANH); + __Pyx_GIVEREF(__pyx_n_s_TANH); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 146, __pyx_n_s_TANH)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TEMA); + __Pyx_GIVEREF(__pyx_n_s_TEMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 147, __pyx_n_s_TEMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TRANGE); + __Pyx_GIVEREF(__pyx_n_s_TRANGE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 148, __pyx_n_s_TRANGE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TRIMA); + __Pyx_GIVEREF(__pyx_n_s_TRIMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 149, __pyx_n_s_TRIMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TRIX); + __Pyx_GIVEREF(__pyx_n_s_TRIX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 150, __pyx_n_s_TRIX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TSF); + __Pyx_GIVEREF(__pyx_n_s_TSF); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 151, __pyx_n_s_TSF)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_TYPPRICE); + __Pyx_GIVEREF(__pyx_n_s_TYPPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 152, __pyx_n_s_TYPPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ULTOSC); + __Pyx_GIVEREF(__pyx_n_s_ULTOSC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 153, __pyx_n_s_ULTOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_VAR); + __Pyx_GIVEREF(__pyx_n_s_VAR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 154, __pyx_n_s_VAR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_WCLPRICE); + __Pyx_GIVEREF(__pyx_n_s_WCLPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 155, __pyx_n_s_WCLPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_WILLR); + __Pyx_GIVEREF(__pyx_n_s_WILLR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 156, __pyx_n_s_WILLR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_WMA); + __Pyx_GIVEREF(__pyx_n_s_WMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 157, __pyx_n_s_WMA)) __PYX_ERR(3, 5222, __pyx_L1_error); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNCTION_NAMES, __pyx_t_6) < 0) __PYX_ERR(3, 5222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3365, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3363, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3363, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, 0, __pyx_n_s_stream_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__422)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3363, __pyx_L1_error) + /* "talib/_abstract.pxi":4 + * This file Copyright (c) 2013 Brian A Cappello + * ''' + * import math # <<<<<<<<<<<<<< + * import threading + * try: + */ + __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_t_6) < 0) __PYX_ERR(4, 3363, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_6) < 0) __PYX_ERR(1, 4, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3394, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3392, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, 0, __pyx_n_s_stream_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3392, __pyx_L1_error) + /* "talib/_abstract.pxi":5 + * ''' + * import math + * import threading # <<<<<<<<<<<<<< + * try: + * from collections import OrderedDict + */ + __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_SLOPE, __pyx_t_6) < 0) __PYX_ERR(4, 3392, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_6) < 0) __PYX_ERR(1, 5, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_LN, 0, __pyx_n_s_stream_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3421, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LN, __pyx_t_6) < 0) __PYX_ERR(4, 3421, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_24); + /*try:*/ { - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_LOG10, 0, __pyx_n_s_stream_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__425)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3448, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LOG10, __pyx_t_6) < 0) __PYX_ERR(4, 3448, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":7 + * import threading + * try: + * from collections import OrderedDict # <<<<<<<<<<<<<< + * except ImportError: # handle python 2.6 and earlier + * from ordereddict import OrderedDict + */ + __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_n_s_OrderedDict); + __Pyx_GIVEREF(__pyx_n_s_OrderedDict); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 7, __pyx_L11_error); + __pyx_t_18 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_6, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_18, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_6) < 0) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + goto __pyx_L16_try_end; + __pyx_L11_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 3475, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_14)) __PYX_ERR(4, 3475, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_MA, 0, __pyx_n_s_stream_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3475, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MA, __pyx_t_14) < 0) __PYX_ERR(4, 3475, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + /* "talib/_abstract.pxi":8 + * try: + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier # <<<<<<<<<<<<<< + * from ordereddict import OrderedDict + * from cython.operator cimport dereference as deref + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 8, __pyx_L13_except_error) + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_2); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3507, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":9 + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + * from ordereddict import OrderedDict # <<<<<<<<<<<<<< + * from cython.operator cimport dereference as deref + * import numpy + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_OrderedDict); + __Pyx_GIVEREF(__pyx_n_s_OrderedDict); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 9, __pyx_L13_except_error); + __pyx_t_14 = __Pyx_Import(__pyx_n_s_ordereddict, __pyx_t_3, -1); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_14, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_3) < 0) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L12_exception_handled; + } + goto __pyx_L13_except_error; - __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(4, 3505, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_18)) __PYX_ERR(4, 3505, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6)) __PYX_ERR(4, 3505, __pyx_L1_error); - __pyx_t_14 = 0; - __pyx_t_18 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_MACD, 0, __pyx_n_s_stream_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACD, __pyx_t_6) < 0) __PYX_ERR(4, 3505, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + __pyx_L13_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + goto __pyx_L1_error; + __pyx_L12_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + __pyx_L16_try_end:; + } - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3544, __pyx_L1_error) + /* "talib/_abstract.pxi":11 + * from ordereddict import OrderedDict + * from cython.operator cimport dereference as deref + * import numpy # <<<<<<<<<<<<<< + * import sys + * + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 11, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3544, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - - __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6)) __PYX_ERR(4, 3542, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(4, 3542, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_18)) __PYX_ERR(4, 3542, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_14)) __PYX_ERR(4, 3542, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_2)) __PYX_ERR(4, 3542, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_7)) __PYX_ERR(4, 3542, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_3 = 0; - __pyx_t_18 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT, 0, __pyx_n_s_stream_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__431)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDEXT, __pyx_t_7) < 0) __PYX_ERR(4, 3542, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3584, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_2) < 0) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(4, 3582, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX, 0, __pyx_n_s_stream_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__433)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3582, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDFIX, __pyx_t_7) < 0) __PYX_ERR(4, 3582, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":12 + * from cython.operator cimport dereference as deref + * import numpy + * import sys # <<<<<<<<<<<<<< + * + * cimport numpy as np + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3619, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + /* "talib/_abstract.pxi":18 + * # NOTE: _ta_check_success, MA_Type is defined in _common.pxi + * + * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + * + * # lookup for TALIB input parameters which don't define expected price series inputs + */ + __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(1, 18, __pyx_L1_error) - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3617, __pyx_L1_error) + /* "talib/_abstract.pxi":21 + * + * # lookup for TALIB input parameters which don't define expected price series inputs + * __INPUT_PRICE_SERIES_DEFAULTS = {'price': 'close', # <<<<<<<<<<<<<< + * 'price0': 'high', + * 'price1': 'low', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 21, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7)) __PYX_ERR(4, 3617, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(4, 3617, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_MAMA, 0, __pyx_n_s_stream_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__435)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3617, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price, __pyx_n_s_close) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price0, __pyx_n_s_high) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price1, __pyx_n_s_low) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_periods, __pyx_n_s_periods) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_2) < 0) __PYX_ERR(1, 21, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAMA, __pyx_t_4) < 0) __PYX_ERR(4, 3617, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3652, __pyx_L1_error) + /* "talib/_abstract.pxi":27 + * } + * + * __INPUT_ARRAYS_TYPES = [dict] # <<<<<<<<<<<<<< + * __ARRAY_TYPES = [np.ndarray] + * + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 27, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3652, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(4, 3650, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(4, 3650, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_7)) __PYX_ERR(4, 3650, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_2 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_MAVP, 0, __pyx_n_s_stream_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__437)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3650, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAVP, __pyx_t_7) < 0) __PYX_ERR(4, 3650, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __Pyx_INCREF((PyObject *)(&PyDict_Type)); + __Pyx_GIVEREF((PyObject *)(&PyDict_Type)); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyDict_Type)))) __PYX_ERR(1, 27, __pyx_L1_error); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3685, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_MAX, 0, __pyx_n_s_stream_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__438)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAX, __pyx_t_7) < 0) __PYX_ERR(4, 3685, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":28 + * + * __INPUT_ARRAYS_TYPES = [dict] + * __ARRAY_TYPES = [np.ndarray] # <<<<<<<<<<<<<< + * + * # allow use of pandas.DataFrame for input arrays + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF((PyObject *)__pyx_ptype_5numpy_ndarray); + __Pyx_GIVEREF((PyObject *)__pyx_ptype_5numpy_ndarray); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_5numpy_ndarray))) __PYX_ERR(1, 28, __pyx_L1_error); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3716, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_24, &__pyx_t_23, &__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_1); + /*try:*/ { - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3714, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX, 0, __pyx_n_s_stream_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__440)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3714, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3714, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":32 + * # allow use of pandas.DataFrame for input arrays + * try: + * import pandas # <<<<<<<<<<<<<< + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_pandas, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 32, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_2) < 0) __PYX_ERR(1, 32, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE, 0, __pyx_n_s_stream_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__442)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MEDPRICE, __pyx_t_7) < 0) __PYX_ERR(4, 3743, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":33 + * try: + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) # <<<<<<<<<<<<<< + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3775, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":34 + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) # <<<<<<<<<<<<<< + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_18, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3773, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_MFI, 0, __pyx_n_s_stream_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__444)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3773, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MFI, __pyx_t_7) < 0) __PYX_ERR(4, 3773, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":35 + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame # <<<<<<<<<<<<<< + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, __pyx_t_18) < 0) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":36 + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series # <<<<<<<<<<<<<< + * except ImportError as import_error: + * try: + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_pandas); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, __pyx_t_6) < 0) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3811, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT, 0, __pyx_n_s_stream_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__445)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3811, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPOINT, __pyx_t_7) < 0) __PYX_ERR(4, 3811, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + } + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L24_try_end; + __pyx_L19_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3842, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":37 + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: # <<<<<<<<<<<<<< + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_18, &__pyx_t_2) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_18) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3840, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE, 0, __pyx_n_s_stream_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__446)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3840, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPRICE, __pyx_t_7) < 0) __PYX_ERR(4, 3840, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_28); + /*try:*/ { - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":39 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_30 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_31 = (!__pyx_t_30); + if (!__pyx_t_31) { + } else { + __pyx_t_29 = __pyx_t_31; + goto __pyx_L36_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_31 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_pandas, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_29 = __pyx_t_31; + __pyx_L36_bool_binop_done:; + if (unlikely(__pyx_t_29)) { - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3872, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_MIN, 0, __pyx_n_s_stream_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__447)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIN, __pyx_t_7) < 0) __PYX_ERR(4, 3872, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":41 + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + * raise import_error # <<<<<<<<<<<<<< + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 41, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_Raise(__pyx_t_14, 0, 0, 0); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __PYX_ERR(1, 41, __pyx_L27_error) - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":39 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + } - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3901, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_MININDEX, 0, __pyx_n_s_stream_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__448)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MININDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3901, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + } + __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; + goto __pyx_L34_try_end; + __pyx_L27_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __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; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":43 + * raise import_error + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); + if (__pyx_t_22) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L28_exception_handled; + } + goto __pyx_L29_except_error; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3930, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_MINMAX, 0, __pyx_n_s_stream_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__450)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3930, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAX, __pyx_t_7) < 0) __PYX_ERR(4, 3930, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + __pyx_L29_except_error:; + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); + goto __pyx_L21_except_error; + __pyx_L28_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); + __pyx_L34_try_end:; + } - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3964, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":46 + * pass + * + * __PANDAS_DATAFRAME = None # <<<<<<<<<<<<<< + * __PANDAS_SERIES = None + * + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 46, __pyx_L21_except_error) - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3962, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX, 0, __pyx_n_s_stream_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3962, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3962, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":47 + * + * __PANDAS_DATAFRAME = None + * __PANDAS_SERIES = None # <<<<<<<<<<<<<< + * + * # allow use of polars.DataFrame for input arrays + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, Py_None) < 0) __PYX_ERR(1, 47, __pyx_L21_except_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L20_exception_handled; + } + goto __pyx_L21_except_error; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + __pyx_L21_except_error:; + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); + goto __pyx_L1_error; + __pyx_L20_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); + __pyx_L24_try_end:; + } - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3994, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI, 0, __pyx_n_s_stream_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__453)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 3994, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_24); + /*try:*/ { - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4031, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":51 + * # allow use of polars.DataFrame for input arrays + * try: + * import polars # <<<<<<<<<<<<<< + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_polars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_polars, __pyx_t_2) < 0) __PYX_ERR(1, 51, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4029, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM, 0, __pyx_n_s_stream_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__454)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4029, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":52 + * try: + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) # <<<<<<<<<<<<<< + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4063, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":53 + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) # <<<<<<<<<<<<<< + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4061, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_MOM, 0, __pyx_n_s_stream_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__455)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4061, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MOM, __pyx_t_7) < 0) __PYX_ERR(4, 4061, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":54 + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame # <<<<<<<<<<<<<< + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, __pyx_t_6) < 0) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_MULT, 0, __pyx_n_s_stream_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__456)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4090, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MULT, __pyx_t_7) < 0) __PYX_ERR(4, 4090, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":55 + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series # <<<<<<<<<<<<<< + * except ImportError as import_error: + * try: + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, __pyx_t_18) < 0) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4123, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + goto __pyx_L43_try_end; + __pyx_L38_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4121, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_NATR, 0, __pyx_n_s_stream_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__457)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4121, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_NATR, __pyx_t_7) < 0) __PYX_ERR(4, 4121, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":56 + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: # <<<<<<<<<<<<<< + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_6) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_OBV, 0, __pyx_n_s_stream_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__459)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4156, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_OBV, __pyx_t_7) < 0) __PYX_ERR(4, 4156, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_26); + /*try:*/ { - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4189, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":58 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_31 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_30 = (!__pyx_t_31); + if (!__pyx_t_30) { + } else { + __pyx_t_29 = __pyx_t_30; + goto __pyx_L55_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_30 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_polars, Py_NE)); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_29 = __pyx_t_30; + __pyx_L55_bool_binop_done:; + if (unlikely(__pyx_t_29)) { - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4187, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI, 0, __pyx_n_s_stream_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__460)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 4187, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":60 + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + * raise import_error # <<<<<<<<<<<<<< + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 60, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_Raise(__pyx_t_14, 0, 0, 0); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __PYX_ERR(1, 60, __pyx_L46_error) - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4224, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + /* "talib/_abstract.pxi":58 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + } - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4222, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM, 0, __pyx_n_s_stream_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4222, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + } + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + goto __pyx_L53_try_end; + __pyx_L46_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __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; - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4256, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /* "talib/_abstract.pxi":62 + * raise import_error + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); + if (__pyx_t_22) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L47_exception_handled; + } + goto __pyx_L48_except_error; - __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(4, 4254, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_14)) __PYX_ERR(4, 4254, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(4, 4254, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_PPO, 0, __pyx_n_s_stream_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4254, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PPO, __pyx_t_2) < 0) __PYX_ERR(4, 4254, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + __pyx_L48_except_error:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); + goto __pyx_L40_except_error; + __pyx_L47_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); + __pyx_L53_try_end:; + } - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4287, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /* "talib/_abstract.pxi":65 + * pass + * + * __POLARS_DATAFRAME = None # <<<<<<<<<<<<<< + * __POLARS_SERIES = None + * + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 65, __pyx_L40_except_error) - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4285, __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)) __PYX_ERR(4, 4285, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_ROC, 0, __pyx_n_s_stream_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__463)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4285, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROC, __pyx_t_2) < 0) __PYX_ERR(4, 4285, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":66 + * + * __POLARS_DATAFRAME = None + * __POLARS_SERIES = None # <<<<<<<<<<<<<< + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, Py_None) < 0) __PYX_ERR(1, 66, __pyx_L40_except_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L39_exception_handled; + } + goto __pyx_L40_except_error; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4316, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + __pyx_L40_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + goto __pyx_L1_error; + __pyx_L39_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + __pyx_L43_try_end:; + } - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4314, __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)) __PYX_ERR(4, 4314, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_ROCP, 0, __pyx_n_s_stream_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4314, __pyx_L1_error) + /* "talib/_abstract.pxi":68 + * __POLARS_SERIES = None + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) # <<<<<<<<<<<<<< + * __ARRAY_TYPES = tuple(__ARRAY_TYPES) + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCP, __pyx_t_2) < 0) __PYX_ERR(4, 4314, __pyx_L1_error) + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_6) < 0) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4345, __pyx_L1_error) + /* "talib/_abstract.pxi":69 + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) + * __ARRAY_TYPES = tuple(__ARRAY_TYPES) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4343, __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)) __PYX_ERR(4, 4343, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_ROCR, 0, __pyx_n_s_stream_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__465)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4343, __pyx_L1_error) + /* "talib/_abstract.pxi":72 + * + * + * if sys.version >= '3': # <<<<<<<<<<<<<< + * + * def str2bytes(s): + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR, __pyx_t_2) < 0) __PYX_ERR(4, 4343, __pyx_L1_error) + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_kp_s_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_29 < 0))) __PYX_ERR(1, 72, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_29) { - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4372, __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)) __PYX_ERR(4, 4372, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_ROCR100, 0, __pyx_n_s_stream_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4372, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR100, __pyx_t_2) < 0) __PYX_ERR(4, 4372, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + /* "talib/_abstract.pxi":72 + * + * + * if sys.version >= '3': # <<<<<<<<<<<<<< + * + * def str2bytes(s): + */ + goto __pyx_L57; + } - __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4401, __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)) __PYX_ERR(4, 4401, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_RSI, 0, __pyx_n_s_stream_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__467)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4401, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_RSI, __pyx_t_2) < 0) __PYX_ERR(4, 4401, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ + /*else*/ { + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L57:; - __pyx_t_2 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4432, __pyx_L1_error) + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__248); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4432, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_Function, __pyx_n_s_Function, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, __pyx_kp_s_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (__pyx_t_2 != __pyx_tuple__248) { + if (unlikely((PyDict_SetItemString(__pyx_t_18, "__orig_bases__", __pyx_tuple__248) < 0))) __PYX_ERR(1, 88, __pyx_L1_error) + } - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4430, __pyx_L1_error) + /* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_n_s_Function___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 117, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2)) __PYX_ERR(4, 4430, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_4)) __PYX_ERR(4, 4430, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_SAR, 0, __pyx_n_s_stream_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__469)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4430, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_init, __pyx_t_14) < 0) __PYX_ERR(1, 117, __pyx_L1_error) __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAR, __pyx_t_4) < 0) __PYX_ERR(4, 4430, __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(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4465, __pyx_L1_error) + /* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_n_s_Function___local, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4465, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 130, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4465, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - - __pyx_t_19 = PyTuple_New(8); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_7)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_18)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_3)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 6, __pyx_t_6)) __PYX_ERR(4, 4463, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 7, __pyx_t_15)) __PYX_ERR(4, 4463, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_7 = 0; - __pyx_t_18 = 0; - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_SAREXT, 0, __pyx_n_s_stream_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__471)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAREXT, __pyx_t_15) < 0) __PYX_ERR(4, 4463, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_SIN, 0, __pyx_n_s_stream_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__472)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SIN, __pyx_t_15) < 0) __PYX_ERR(4, 4502, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_SINH, 0, __pyx_n_s_stream_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__473)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4529, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SINH, __pyx_t_15) < 0) __PYX_ERR(4, 4529, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__local, __pyx_t_3) < 0) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_n_s_Function_info, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_info, __pyx_t_14) < 0) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15)) __PYX_ERR(4, 4556, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_SMA, 0, __pyx_n_s_stream_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__474)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4556, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SMA, __pyx_t_15) < 0) __PYX_ERR(4, 4556, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_n_s_Function_function_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_function_flags, __pyx_t_3) < 0) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_SQRT, 0, __pyx_n_s_stream_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__475)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4585, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SQRT, __pyx_t_15) < 0) __PYX_ERR(4, 4585, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_n_s_Function_output_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_flags, __pyx_t_14) < 0) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4614, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + /* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_n_s_Function_get_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15)) __PYX_ERR(4, 4612, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_19)) __PYX_ERR(4, 4612, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_STDDEV, 0, __pyx_n_s_stream_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STDDEV, __pyx_t_19) < 0) __PYX_ERR(4, 4612, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + /* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_n_s_Function_set_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4644, __pyx_L1_error) + /* "talib/_abstract.pxi":214 + * local.outputs_valid = False + * + * input_names = property(get_input_names, set_input_names) # <<<<<<<<<<<<<< + * + * def get_input_arrays(self): + */ + __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_names); + if (unlikely(!__pyx_t_14)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_input_names); + } + if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_names); + if (unlikely(!__pyx_t_3)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_set_input_names); + } + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4644, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - - __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4642, __pyx_L1_error) + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 214, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(4, 4642, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6)) __PYX_ERR(4, 4642, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_15)) __PYX_ERR(4, 4642, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_3)) __PYX_ERR(4, 4642, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_18)) __PYX_ERR(4, 4642, __pyx_L1_error); - __pyx_t_19 = 0; - __pyx_t_6 = 0; - __pyx_t_15 = 0; + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error); + __pyx_t_14 = 0; __pyx_t_3 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_STOCH, 0, __pyx_n_s_stream_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4642, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_7); + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCH, __pyx_t_18) < 0) __PYX_ERR(4, 4642, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_names, __pyx_t_3) < 0) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4686, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4686, __pyx_L1_error) + /* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_n_s_Function_get_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4684, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(4, 4684, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_7)) __PYX_ERR(4, 4684, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_3)) __PYX_ERR(4, 4684, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_7 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_STOCHF, 0, __pyx_n_s_stream_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__481)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4684, __pyx_L1_error) + /* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_n_s_Function_set_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHF, __pyx_t_3) < 0) __PYX_ERR(4, 4684, __pyx_L1_error) + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 227, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4726, __pyx_L1_error) + /* "talib/_abstract.pxi":274 + * return False + * + * input_arrays = property(get_input_arrays, set_input_arrays) # <<<<<<<<<<<<<< + * + * def get_parameters(self): + */ + __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_arrays); + if (unlikely(!__pyx_t_3)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_input_arrays); + } + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4726, __pyx_L1_error) + __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_arrays); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_input_arrays); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_7); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4726, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - - __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3)) __PYX_ERR(4, 4724, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_15)) __PYX_ERR(4, 4724, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7)) __PYX_ERR(4, 4724, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_18)) __PYX_ERR(4, 4724, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error); __pyx_t_3 = 0; - __pyx_t_15 = 0; __pyx_t_7 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI, 0, __pyx_n_s_stream_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHRSI, __pyx_t_18) < 0) __PYX_ERR(4, 4724, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_arrays, __pyx_t_7) < 0) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_SUB, 0, __pyx_n_s_stream_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4759, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUB, __pyx_t_18) < 0) __PYX_ERR(4, 4759, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_n_s_Function_get_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_n_s_Function_set_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__268); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_18)) __PYX_ERR(4, 4790, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_SUM, 0, __pyx_n_s_stream_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__485)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4790, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUM, __pyx_t_18) < 0) __PYX_ERR(4, 4790, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":299 + * local.info['parameters'] = self.parameters + * + * parameters = property(get_parameters, set_parameters) # <<<<<<<<<<<<<< + * + * def set_function_args(self, *args, **kwargs): + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_parameters); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_parameters); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_parameters); + if (unlikely(!__pyx_t_14)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_set_parameters); + } + if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_parameters, __pyx_t_14) < 0) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4821, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_n_s_Function_set_function_args, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_function_args, __pyx_t_14) < 0) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18)) __PYX_ERR(4, 4819, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6)) __PYX_ERR(4, 4819, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_T3, 0, __pyx_n_s_stream_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__487)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4819, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_T3, __pyx_t_6) < 0) __PYX_ERR(4, 4819, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_n_s_Function_lookback, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_lookback, __pyx_t_3) < 0) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_TAN, 0, __pyx_n_s_stream_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__488)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4849, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TAN, __pyx_t_6) < 0) __PYX_ERR(4, 4849, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_n_s_Function_output_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_names, __pyx_t_14) < 0) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_TANH, 0, __pyx_n_s_stream_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TANH, __pyx_t_6) < 0) __PYX_ERR(4, 4876, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_n_s_Function_outputs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_outputs, __pyx_t_3) < 0) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_n_s_Function_run, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__268); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_run, __pyx_t_3) < 0) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4903, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_TEMA, 0, __pyx_n_s_stream_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__490)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TEMA, __pyx_t_6) < 0) __PYX_ERR(4, 4903, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_n_s_Function___call, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_call, __pyx_t_3) < 0) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_TRANGE, 0, __pyx_n_s_stream_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__492)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4932, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRANGE, __pyx_t_6) < 0) __PYX_ERR(4, 4932, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_n_s_Function___input_price_series_na, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__input_price_series_na, __pyx_t_3) < 0) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_n_s_Function___call_function, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__call_function, __pyx_t_3) < 0) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4965, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4965, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_TRIMA, 0, __pyx_n_s_stream_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__493)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4965, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIMA, __pyx_t_6) < 0) __PYX_ERR(4, 4965, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_n_s_Function___check_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__check_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4996, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_n_s_Function___get_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__get_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4994, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_TRIX, 0, __pyx_n_s_stream_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4994, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIX, __pyx_t_6) < 0) __PYX_ERR(4, 4994, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_n_s_Function___repr, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(1, 545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_n_s_Function___unicode, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_unicode, __pyx_t_3) < 0) __PYX_ERR(1, 548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 5023, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_TSF, 0, __pyx_n_s_stream_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__495)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5023, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TSF, __pyx_t_6) < 0) __PYX_ERR(4, 5023, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_n_s_Function___str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_str, __pyx_t_3) < 0) __PYX_ERR(1, 551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE, 0, __pyx_n_s_stream_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__496)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TYPPRICE, __pyx_t_6) < 0) __PYX_ERR(4, 5052, __pyx_L1_error) + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_Function, __pyx_t_2, __pyx_t_18, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Function, __pyx_t_3) < 0) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable, 0, __pyx_n_s_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getGroupTable, __pyx_t_2) < 0) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6)) __PYX_ERR(4, 5085, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_7)) __PYX_ERR(4, 5085, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(4, 5085, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC, 0, __pyx_n_s_stream_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__498)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5085, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ULTOSC, __pyx_t_18) < 0) __PYX_ERR(4, 5085, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable, 0, __pyx_n_s_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncTable, __pyx_t_2) < 0) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347__get_flags, 0, __pyx_n_s_get_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_flags, __pyx_t_2) < 0) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18)) __PYX_ERR(4, 5122, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(4, 5122, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_VAR, 0, __pyx_n_s_stream_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_VAR, __pyx_t_15) < 0) __PYX_ERR(4, 5122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":615 + * + * TA_FUNC_FLAGS = { + * 16777216: 'Output scale same as input', # <<<<<<<<<<<<<< + * 67108864: 'Output is over volume', + * 134217728: 'Function has an unstable period', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16777216, __pyx_kp_s_Output_scale_same_as_input) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_67108864, __pyx_kp_s_Output_is_over_volume) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_134217728, __pyx_kp_s_Function_has_an_unstable_period) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_268435456, __pyx_kp_s_Output_is_a_candlestick) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNC_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 614, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE, 0, __pyx_n_s_stream_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__500)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5152, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WCLPRICE, __pyx_t_15) < 0) __PYX_ERR(4, 5152, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":623 + * # when flag is 0, the function (should) work on any reasonable input ndarray + * TA_INPUT_FLAGS = { + * 1: 'open', # <<<<<<<<<<<<<< + * 2: 'high', + * 4: 'low', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_open) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_n_s_high) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_n_s_low) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_close) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_volume) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_n_s_openInterest) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_n_s_timeStamp) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_INPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 622, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5187, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":633 + * + * TA_OUTPUT_FLAGS = { + * 1: 'Line', # <<<<<<<<<<<<<< + * 2: 'Dotted Line', + * 4: 'Dashed Line', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_kp_s_Dotted_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_kp_s_Dashed_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_Dot) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_Histogram) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_kp_s_Pattern_Bool) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_128, __pyx_kp_s_Strength_Pattern_200_100_Bearish) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_256, __pyx_kp_s_Output_can_be_positive) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_512, __pyx_kp_s_Output_can_be_negative) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1024, __pyx_kp_s_Output_can_be_zero) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2048, __pyx_kp_s_Values_represent_an_upper_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4096, __pyx_kp_s_Values_represent_a_lower_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_OUTPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15)) __PYX_ERR(4, 5185, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_WILLR, 0, __pyx_n_s_stream_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__501)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5185, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WILLR, __pyx_t_15) < 0) __PYX_ERR(4, 5185, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo, 0, __pyx_n_s_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncInfo, __pyx_t_2) < 0) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + /* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo, 0, __pyx_n_s_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15)) __PYX_ERR(4, 5220, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_WMA, 0, __pyx_n_s_stream_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5220, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WMA, __pyx_t_15) < 0) __PYX_ERR(4, 5220, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + /* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, 0, __pyx_n_s_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOptInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) + /* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo, 0, __pyx_n_s_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOutputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 712, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs, 0, __pyx_n_s_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_defaults_and_docs, __pyx_t_2) < 0) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_ta_lib.pyx":6 + * include "_stream.pxi" + * + * __all__ = __TA_FUNCTION_NAMES__ + ["stream_%s" % name for name in __TA_FUNCTION_NAMES__] # <<<<<<<<<<<<<< + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) { - __pyx_t_6 = __pyx_t_18; __Pyx_INCREF(__pyx_t_6); + __pyx_t_3 = __pyx_t_18; __Pyx_INCREF(__pyx_t_3); __pyx_t_17 = 0; __pyx_t_32 = NULL; } else { - __pyx_t_17 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_32 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_32)) __PYX_ERR(5, 6, __pyx_L1_error) + __pyx_t_17 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_32 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_32)) __PYX_ERR(4, 6, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; for (;;) { if (likely(!__pyx_t_32)) { - if (likely(PyList_CheckExact(__pyx_t_6))) { + if (likely(PyList_CheckExact(__pyx_t_3))) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 6, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 6, __pyx_L1_error) #endif if (__pyx_t_17 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(5, 6, __pyx_L1_error) + __pyx_t_18 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(4, 6, __pyx_L1_error) #else - __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) + __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } else { { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 6, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 6, __pyx_L1_error) #endif if (__pyx_t_17 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(5, 6, __pyx_L1_error) + __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(4, 6, __pyx_L1_error) #else - __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) + __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } } else { - __pyx_t_18 = __pyx_t_32(__pyx_t_6); + __pyx_t_18 = __pyx_t_32(__pyx_t_3); if (unlikely(!__pyx_t_18)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(5, 6, __pyx_L1_error) + else __PYX_ERR(4, 6, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_18); } - if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_18) < 0) __PYX_ERR(5, 6, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_18) < 0) __PYX_ERR(4, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_stream__s, __pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyString_FormatSafe(__pyx_kp_s_stream__s, __pyx_t_18); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_14))) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; } + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = PyNumber_Add(__pyx_t_15, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_6) < 0) __PYX_ERR(5, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_3) < 0) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_6) < 0) __PYX_ERR(5, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* "talib/_ta_lib.pyx":1 + * include "_common.pxi" # <<<<<<<<<<<<<< + * include "_func.pxi" + * include "_abstract.pxi" + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; /*--- Wrapped vars code ---*/ @@ -106979,6 +91749,160 @@ static void __Pyx_AddTraceback(const char *funcname, int c_line, #endif #endif +/* Declarations */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) + #ifdef __cplusplus + static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) { + return ::std::complex< long double >(x, y); + } + #else + static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) { + return x + y*(__pyx_t_long_double_complex)_Complex_I; + } + #endif +#else + static CYTHON_INLINE __pyx_t_long_double_complex __pyx_t_long_double_complex_from_parts(long double x, long double y) { + __pyx_t_long_double_complex z; + z.real = x; + z.imag = y; + return z; + } +#endif + +/* Arithmetic */ +#if CYTHON_CCOMPLEX && (1) && (!0 || __cplusplus) +#else + static CYTHON_INLINE int __Pyx_c_eq_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + return (a.real == b.real) && (a.imag == b.imag); + } + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_sum_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + __pyx_t_long_double_complex z; + z.real = a.real + b.real; + z.imag = a.imag + b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_diff_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + __pyx_t_long_double_complex z; + z.real = a.real - b.real; + z.imag = a.imag - b.imag; + return z; + } + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_prod_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + __pyx_t_long_double_complex z; + z.real = a.real * b.real - a.imag * b.imag; + z.imag = a.real * b.imag + a.imag * b.real; + return z; + } + #if 1 + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + if (b.imag == 0) { + return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real); + } else if (fabsl(b.real) >= fabsl(b.imag)) { + if (b.real == 0 && b.imag == 0) { + return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.imag); + } else { + long double r = b.imag / b.real; + long double s = (long double)(1.0) / (b.real + b.imag * r); + return __pyx_t_long_double_complex_from_parts( + (a.real + a.imag * r) * s, (a.imag - a.real * r) * s); + } + } else { + long double r = b.real / b.imag; + long double s = (long double)(1.0) / (b.imag + b.real * r); + return __pyx_t_long_double_complex_from_parts( + (a.real * r + a.imag) * s, (a.imag * r - a.real) * s); + } + } + #else + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_quot_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + if (b.imag == 0) { + return __pyx_t_long_double_complex_from_parts(a.real / b.real, a.imag / b.real); + } else { + long double denom = b.real * b.real + b.imag * b.imag; + return __pyx_t_long_double_complex_from_parts( + (a.real * b.real + a.imag * b.imag) / denom, + (a.imag * b.real - a.real * b.imag) / denom); + } + } + #endif + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_neg_long__double(__pyx_t_long_double_complex a) { + __pyx_t_long_double_complex z; + z.real = -a.real; + z.imag = -a.imag; + return z; + } + static CYTHON_INLINE int __Pyx_c_is_zero_long__double(__pyx_t_long_double_complex a) { + return (a.real == 0) && (a.imag == 0); + } + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_conj_long__double(__pyx_t_long_double_complex a) { + __pyx_t_long_double_complex z; + z.real = a.real; + z.imag = -a.imag; + return z; + } + #if 1 + static CYTHON_INLINE long double __Pyx_c_abs_long__double(__pyx_t_long_double_complex z) { + #if !defined(HAVE_HYPOT) || defined(_MSC_VER) + return sqrtl(z.real*z.real + z.imag*z.imag); + #else + return hypotl(z.real, z.imag); + #endif + } + static CYTHON_INLINE __pyx_t_long_double_complex __Pyx_c_pow_long__double(__pyx_t_long_double_complex a, __pyx_t_long_double_complex b) { + __pyx_t_long_double_complex z; + long double r, lnr, theta, z_r, z_theta; + if (b.imag == 0 && b.real == (int)b.real) { + if (b.real < 0) { + long double denom = a.real * a.real + a.imag * a.imag; + a.real = a.real / denom; + a.imag = -a.imag / denom; + b.real = -b.real; + } + switch ((int)b.real) { + case 0: + z.real = 1; + z.imag = 0; + return z; + case 1: + return a; + case 2: + return __Pyx_c_prod_long__double(a, a); + case 3: + z = __Pyx_c_prod_long__double(a, a); + return __Pyx_c_prod_long__double(z, a); + case 4: + z = __Pyx_c_prod_long__double(a, a); + return __Pyx_c_prod_long__double(z, z); + } + } + if (a.imag == 0) { + if (a.real == 0) { + return a; + } else if ((b.imag == 0) && (a.real >= 0)) { + z.real = powl(a.real, b.real); + z.imag = 0; + return z; + } else if (a.real > 0) { + r = a.real; + theta = 0; + } else { + r = -a.real; + theta = atan2l(0.0, -1.0); + } + } else { + r = __Pyx_c_abs_long__double(a); + theta = atan2l(a.imag, a.real); + } + lnr = logl(r); + z_r = expl(lnr * b.real - theta * b.imag); + z_theta = theta * b.real + lnr * b.imag; + z.real = z_r * cosl(z_theta); + z.imag = z_r * sinl(z_theta); + return z; + } + #endif +#endif + /* CIntFromPy */ static CYTHON_INLINE TA_RetCode __Pyx_PyInt_As_TA_RetCode(PyObject *x) { #ifdef __Pyx_HAS_GCC_DIAGNOSTIC @@ -109426,7 +94350,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp) if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { PyErr_Clear(); Py_XDECREF(name); - name = __Pyx_NewRef(__pyx_n_s__503); + name = __Pyx_NewRef(__pyx_n_s__307); } return name; } diff --git a/tools/generate_func.py b/tools/generate_func.py index 5a625ef08..3a8b34198 100644 --- a/tools/generate_func.py +++ b/tools/generate_func.py @@ -73,7 +73,7 @@ raise Exception("input array type is not double") if real.ndim != 1: raise Exception("input array has wrong dimensions") - if not (PyArray_FLAGS(real) & np.NPY_C_CONTIGUOUS): + if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): real = PyArray_GETCONTIGUOUS(real) return real @@ -173,7 +173,7 @@ cdef: np.ndarray outreal double* outreal_data - outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, np.NPY_DEFAULT) + outreal = PyArray_EMPTY(1, &length, np.NPY_DOUBLE, 0) outreal_data = outreal.data for i from 0 <= i < min(lookback, length): outreal_data[i] = NaN @@ -183,7 +183,7 @@ cdef: np.ndarray outinteger int* outinteger_data - outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, np.NPY_DEFAULT) + outinteger = PyArray_EMPTY(1, &length, np.NPY_INT32, 0) outinteger_data = outinteger.data for i from 0 <= i < min(lookback, length): outinteger_data[i] = 0 From bbbc8554735b092fa701521888bd25bd52de92ce Mon Sep 17 00:00:00 2001 From: LiJia Date: Wed, 16 Oct 2024 17:28:29 +0800 Subject: [PATCH 5/6] fix missing _stream.pxi --- talib/_stream.pxi | 5248 ++++ talib/_ta_lib.c | 69566 +++++++++++++++++++++++++++++++++++++++----- 2 files changed, 66916 insertions(+), 7898 deletions(-) diff --git a/talib/_stream.pxi b/talib/_stream.pxi index e69de29bb..595f4a0c7 100644 --- a/talib/_stream.pxi +++ b/talib/_stream.pxi @@ -0,0 +1,5248 @@ +cimport numpy as np +from cython import boundscheck, wraparound +cimport _ta_lib as lib +from _ta_lib cimport TA_RetCode +# NOTE: _ta_check_success, NaN are defined in common.pxi + +np.import_array() # Initialize the NumPy C API + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ACOS( np.ndarray real not None ): + """ ACOS(real) + + Vector Trigonometric ACos (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ACOS", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + """ AD(high, low, close, volume) + + Chaikin A/D Line (Volume Indicators) + + Inputs: + prices: ['high', 'low', 'close', 'volume'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + double* volume_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + volume = check_array(volume) + volume_data = volume.data + length = check_length4(high, low, close, volume) + outreal = NaN + retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_AD", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + """ ADD(real0, real1) + + Vector Arithmetic Add (Math Operators) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ADD", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ADOSC( 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 ): + """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) + + Chaikin A/D Oscillator (Volume Indicators) + + Inputs: + prices: ['high', 'low', 'close', 'volume'] + Parameters: + fastperiod: 3 + slowperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + double* volume_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + volume = check_array(volume) + volume_data = volume.data + length = check_length4(high, low, close, volume) + outreal = NaN + retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ADOSC", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ ADX(high, low, close[, timeperiod=?]) + + Average Directional Movement Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ADX", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ ADXR(high, low, close[, timeperiod=?]) + + Average Directional Movement Index Rating (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) + + Absolute Price Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 12 + slowperiod: 26 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_APO", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ AROON(high, low[, timeperiod=?]) + + Aroon (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + aroondown + aroonup + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outaroondown + double outaroonup + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outaroondown = NaN + outaroonup = NaN + retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) + _ta_check_success("TA_AROON", retCode) + return outaroondown , outaroonup + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ AROONOSC(high, low[, timeperiod=?]) + + Aroon Oscillator (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_ASIN( np.ndarray real not None ): + """ ASIN(real) + + Vector Trigonometric ASin (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ASIN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ATAN( np.ndarray real not None ): + """ ATAN(real) + + Vector Trigonometric ATan (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ATAN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ ATR(high, low, close[, timeperiod=?]) + + Average True Range (Volatility Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ATR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ AVGPRICE(open, high, low, close) + + Average Price (Price Transform) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outreal = NaN + retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_AVGPRICE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + + Bollinger Bands (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 5 + nbdevup: 2.0 + nbdevdn: 2.0 + matype: 0 (Simple Moving Average) + Outputs: + upperband + middleband + lowerband + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outrealupperband + double outrealmiddleband + double outreallowerband + real = check_array(real) + real_data = real.data + length = real.shape[0] + outrealupperband = NaN + outrealmiddleband = NaN + outreallowerband = NaN + retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + _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 stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + """ BETA(real0, real1[, timeperiod=?]) + + Beta (Statistic Functions) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Parameters: + timeperiod: 5 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_BETA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ BOP(open, high, low, close) + + Balance Of Power (Momentum Indicators) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outreal = NaN + retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_BOP", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ CCI(high, low, close[, timeperiod=?]) + + Commodity Channel Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_CCI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL2CROWS(open, high, low, close) + + Two Crows (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL2CROWS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3BLACKCROWS(open, high, low, close) + + Three Black Crows (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3BLACKCROWS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3INSIDE(open, high, low, close) + + Three Inside Up/Down (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3INSIDE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3LINESTRIKE(open, high, low, close) + + Three-Line Strike (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3LINESTRIKE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3OUTSIDE(open, high, low, close) + + Three Outside Up/Down (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3OUTSIDE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3STARSINSOUTH(open, high, low, close) + + Three Stars In The South (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3STARSINSOUTH", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDL3WHITESOLDIERS(open, high, low, close) + + Three Advancing White Soldiers (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) + + Abandoned Baby (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.3 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLABANDONEDBABY", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLADVANCEBLOCK(open, high, low, close) + + Advance Block (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLADVANCEBLOCK", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLBELTHOLD(open, high, low, close) + + Belt-hold (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLBELTHOLD", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLBREAKAWAY(open, high, low, close) + + Breakaway (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLBREAKAWAY", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLCLOSINGMARUBOZU(open, high, low, close) + + Closing Marubozu (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLCONCEALBABYSWALL(open, high, low, close) + + Concealing Baby Swallow (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLCOUNTERATTACK(open, high, low, close) + + Counterattack (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) + + Dark Cloud Cover (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.5 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLDOJI(open, high, low, close) + + Doji (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLDOJI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLDOJISTAR(open, high, low, close) + + Doji Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLDOJISTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLDRAGONFLYDOJI(open, high, low, close) + + Dragonfly Doji (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLENGULFING(open, high, low, close) + + Engulfing Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLENGULFING", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) + + Evening Doji Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.3 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) + + Evening Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.3 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLEVENINGSTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLGAPSIDESIDEWHITE(open, high, low, close) + + Up/Down-gap side-by-side white lines (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLGRAVESTONEDOJI(open, high, low, close) + + Gravestone Doji (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHAMMER(open, high, low, close) + + Hammer (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHAMMER", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHANGINGMAN(open, high, low, close) + + Hanging Man (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHANGINGMAN", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHARAMI(open, high, low, close) + + Harami Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHARAMI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHARAMICROSS(open, high, low, close) + + Harami Cross Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHARAMICROSS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHIGHWAVE(open, high, low, close) + + High-Wave Candle (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHIGHWAVE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHIKKAKE(open, high, low, close) + + Hikkake Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHIKKAKE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHIKKAKEMOD(open, high, low, close) + + Modified Hikkake Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLHOMINGPIGEON(open, high, low, close) + + Homing Pigeon (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLIDENTICAL3CROWS(open, high, low, close) + + Identical Three Crows (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLINNECK(open, high, low, close) + + In-Neck Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLINNECK", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLINVERTEDHAMMER(open, high, low, close) + + Inverted Hammer (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLKICKING(open, high, low, close) + + Kicking (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLKICKING", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLKICKINGBYLENGTH(open, high, low, close) + + Kicking - bull/bear determined by the longer marubozu (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLLADDERBOTTOM(open, high, low, close) + + Ladder Bottom (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLLONGLEGGEDDOJI(open, high, low, close) + + Long Legged Doji (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLLONGLINE(open, high, low, close) + + Long Line Candle (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLLONGLINE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLMARUBOZU(open, high, low, close) + + Marubozu (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLMARUBOZU", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLMATCHINGLOW(open, high, low, close) + + Matching Low (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLMATCHINGLOW", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + """ CDLMATHOLD(open, high, low, close[, penetration=?]) + + Mat Hold (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.5 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLMATHOLD", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) + + Morning Doji Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.3 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) + + Morning Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Parameters: + penetration: 0.3 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLMORNINGSTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLONNECK(open, high, low, close) + + On-Neck Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLONNECK", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLPIERCING(open, high, low, close) + + Piercing Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLPIERCING", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLRICKSHAWMAN(open, high, low, close) + + Rickshaw Man (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLRISEFALL3METHODS(open, high, low, close) + + Rising/Falling Three Methods (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSEPARATINGLINES(open, high, low, close) + + Separating Lines (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSHOOTINGSTAR(open, high, low, close) + + Shooting Star (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSHORTLINE(open, high, low, close) + + Short Line Candle (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSHORTLINE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSPINNINGTOP(open, high, low, close) + + Spinning Top (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSPINNINGTOP", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSTALLEDPATTERN(open, high, low, close) + + Stalled Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLSTICKSANDWICH(open, high, low, close) + + Stick Sandwich (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLTAKURI(open, high, low, close) + + Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLTAKURI", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLTASUKIGAP(open, high, low, close) + + Tasuki Gap (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLTASUKIGAP", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLTHRUSTING(open, high, low, close) + + Thrusting Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLTHRUSTING", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLTRISTAR(open, high, low, close) + + Tristar Pattern (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLTRISTAR", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLUNIQUE3RIVER(open, high, low, close) + + Unique 3 River (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLUPSIDEGAP2CROWS(open, high, low, close) + + Upside Gap Two Crows (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ CDLXSIDEGAP3METHODS(open, high, low, close) + + Upside/Downside Gap Three Methods (Pattern Recognition) + + Inputs: + prices: ['open', 'high', 'low', 'close'] + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* open_data + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + int outinteger + open = check_array(open) + open_data = open.data + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length4(open, high, low, close) + outinteger = 0 + retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CEIL( np.ndarray real not None ): + """ CEIL(real) + + Vector Ceil (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + """ CMO(real[, timeperiod=?]) + + Chande Momentum Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_CMO", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + """ CORREL(real0, real1[, timeperiod=?]) + + Pearson's Correlation Coefficient (r) (Statistic Functions) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_CORREL", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_COS( np.ndarray real not None ): + """ COS(real) + + Vector Trigonometric Cos (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_COS", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_COSH( np.ndarray real not None ): + """ COSH(real) + + Vector Trigonometric Cosh (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_COSH", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ DEMA(real[, timeperiod=?]) + + Double Exponential Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_DEMA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + """ DIV(real0, real1) + + Vector Arithmetic Div (Math Operators) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_DIV", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ DX(high, low, close[, timeperiod=?]) + + Directional Movement Index (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_DX", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ EMA(real[, timeperiod=?]) + + Exponential Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_EXP( np.ndarray real not None ): + """ EXP(real) + + Vector Arithmetic Exp (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_FLOOR( np.ndarray real not None ): + """ FLOOR(real) + + Vector Floor (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_FLOOR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_DCPERIOD( np.ndarray real not None ): + """ HT_DCPERIOD(real) + + Hilbert Transform - Dominant Cycle Period (Cycle Indicators) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_HT_DCPERIOD", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_DCPHASE( np.ndarray real not None ): + """ HT_DCPHASE(real) + + Hilbert Transform - Dominant Cycle Phase (Cycle Indicators) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_HT_DCPHASE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_PHASOR( np.ndarray real not None ): + """ HT_PHASOR(real) + + Hilbert Transform - Phasor Components (Cycle Indicators) + + Inputs: + real: (any ndarray) + Outputs: + inphase + quadrature + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outinphase + double outquadrature + real = check_array(real) + real_data = real.data + length = real.shape[0] + outinphase = NaN + outquadrature = NaN + retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) + _ta_check_success("TA_HT_PHASOR", retCode) + return outinphase , outquadrature + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_SINE( np.ndarray real not None ): + """ HT_SINE(real) + + Hilbert Transform - SineWave (Cycle Indicators) + + Inputs: + real: (any ndarray) + Outputs: + sine + leadsine + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outsine + double outleadsine + real = check_array(real) + real_data = real.data + length = real.shape[0] + outsine = NaN + outleadsine = NaN + retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) + _ta_check_success("TA_HT_SINE", retCode) + return outsine , outleadsine + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_TRENDLINE( np.ndarray real not None ): + """ HT_TRENDLINE(real) + + Hilbert Transform - Instantaneous Trendline (Overlap Studies) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_HT_TRENDLINE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_HT_TRENDMODE( np.ndarray real not None ): + """ HT_TRENDMODE(real) + + Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators) + + Inputs: + real: (any ndarray) + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + int outinteger + real = check_array(real) + real_data = real.data + length = real.shape[0] + outinteger = 0 + retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_HT_TRENDMODE", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_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 + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): + """ LINEARREG(real[, timeperiod=?]) + + Linear Regression (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LINEARREG", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + """ LINEARREG_ANGLE(real[, timeperiod=?]) + + Linear Regression Angle (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LINEARREG_ANGLE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + """ LINEARREG_INTERCEPT(real[, timeperiod=?]) + + Linear Regression Intercept (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + """ LINEARREG_SLOPE(real[, timeperiod=?]) + + Linear Regression Slope (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LINEARREG_SLOPE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_LN( np.ndarray real not None ): + """ LN(real) + + Vector Log Natural (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_LOG10( np.ndarray real not None ): + """ LOG10(real) + + Vector Log10 (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_LOG10", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + """ MA(real[, timeperiod=?, matype=?]) + + Moving average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) + + Moving Average Convergence/Divergence (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 12 + slowperiod: 26 + signalperiod: 9 + Outputs: + macd + macdsignal + macdhist + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outmacd + double outmacdsignal + double outmacdhist + real = check_array(real) + real_data = real.data + length = real.shape[0] + outmacd = NaN + outmacdsignal = NaN + outmacdhist = NaN + retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + _ta_check_success("TA_MACD", retCode) + return outmacd , outmacdsignal , outmacdhist + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) + + MACD with controllable MA type (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 12 + fastmatype: 0 + slowperiod: 26 + slowmatype: 0 + signalperiod: 9 + signalmatype: 0 + Outputs: + macd + macdsignal + macdhist + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outmacd + double outmacdsignal + double outmacdhist + real = check_array(real) + real_data = real.data + length = real.shape[0] + outmacd = NaN + outmacdsignal = NaN + outmacdhist = NaN + retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + _ta_check_success("TA_MACDEXT", retCode) + return outmacd , outmacdsignal , outmacdhist + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + """ MACDFIX(real[, signalperiod=?]) + + Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + signalperiod: 9 + Outputs: + macd + macdsignal + macdhist + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outmacd + double outmacdsignal + double outmacdhist + real = check_array(real) + real_data = real.data + length = real.shape[0] + outmacd = NaN + outmacdsignal = NaN + outmacdhist = NaN + retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + _ta_check_success("TA_MACDFIX", retCode) + return outmacd , outmacdsignal , outmacdhist + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + """ MAMA(real[, fastlimit=?, slowlimit=?]) + + MESA Adaptive Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + fastlimit: 0.5 + slowlimit: 0.05 + Outputs: + mama + fama + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outmama + double outfama + real = check_array(real) + real_data = real.data + length = real.shape[0] + outmama = NaN + outfama = NaN + retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) + _ta_check_success("TA_MAMA", retCode) + return outmama , outfama + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + """ 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 + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + double* periods_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + periods = check_array(periods) + periods_data = periods.data + length = check_length2(real, periods) + outreal = NaN + retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MAVP", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): + """ MAX(real[, timeperiod=?]) + + Highest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MAX", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + """ MAXINDEX(real[, timeperiod=?]) + + Index of highest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + int outinteger + real = check_array(real) + real_data = real.data + length = real.shape[0] + outinteger = 0 + retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_MAXINDEX", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + """ MEDPRICE(high, low) + + Median Price (Price Transform) + + Inputs: + prices: ['high', 'low'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_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 + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + double* volume_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + volume = check_array(volume) + volume_data = volume.data + length = check_length4(high, low, close, volume) + outreal = NaN + retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + """ MIDPOINT(real[, timeperiod=?]) + + MidPoint over period (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MIDPOINT", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ MIDPRICE(high, low[, timeperiod=?]) + + Midpoint Price over period (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MIDPRICE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): + """ MIN(real[, timeperiod=?]) + + Lowest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MIN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + """ MININDEX(real[, timeperiod=?]) + + Index of lowest value over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + integer (values are -100, 0 or 100) + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + int outinteger + real = check_array(real) + real_data = real.data + length = real.shape[0] + outinteger = 0 + retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + _ta_check_success("TA_MININDEX", retCode) + return outinteger + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + """ MINMAX(real[, timeperiod=?]) + + Lowest and highest values over a specified period (Math Operators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + min + max + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outmin + double outmax + real = check_array(real) + real_data = real.data + length = real.shape[0] + outmin = NaN + outmax = NaN + retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) + _ta_check_success("TA_MINMAX", retCode) + return outmin , outmax + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + """ 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 + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + int outminidx + int outmaxidx + real = check_array(real) + real_data = real.data + length = real.shape[0] + outminidx = 0 + outmaxidx = 0 + retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) + _ta_check_success("TA_MINMAXINDEX", retCode) + return outminidx , outmaxidx + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ MINUS_DI(high, low, close[, timeperiod=?]) + + Minus Directional Indicator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MINUS_DI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ MINUS_DM(high, low[, timeperiod=?]) + + Minus Directional Movement (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MINUS_DM", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + """ MOM(real[, timeperiod=?]) + + Momentum (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MOM", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + """ MULT(real0, real1) + + Vector Arithmetic Mult (Math Operators) + + Inputs: + real0: (any ndarray) + real1: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_MULT", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ NATR(high, low, close[, timeperiod=?]) + + Normalized Average True Range (Volatility Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_NATR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): + """ OBV(real, volume) + + On Balance Volume (Volume Indicators) + + Inputs: + real: (any ndarray) + prices: ['volume'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + double* volume_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + volume = check_array(volume) + volume_data = volume.data + length = check_length2(real, volume) + outreal = NaN + retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ PLUS_DI(high, low, close[, timeperiod=?]) + + Plus Directional Indicator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_PLUS_DI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + """ PLUS_DM(high, low[, timeperiod=?]) + + Plus Directional Movement (Momentum Indicators) + + Inputs: + prices: ['high', 'low'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_PLUS_DM", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) + + Percentage Price Oscillator (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + fastperiod: 12 + slowperiod: 26 + matype: 0 (Simple Moving Average) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + _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 stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): + """ ROC(real[, timeperiod=?]) + + Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ROC", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + """ ROCP(real[, timeperiod=?]) + + Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ROCP", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + """ ROCR(real[, timeperiod=?]) + + Rate of change ratio: (real/prevPrice) (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ROCR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + """ ROCR100(real[, timeperiod=?]) + + Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 10 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): + """ RSI(real[, timeperiod=?]) + + Relative Strength Index (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_RSI", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + """ SAR(high, low[, acceleration=?, maximum=?]) + + Parabolic SAR (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + Parameters: + acceleration: 0.02 + maximum: 0.2 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_SAR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) + + Parabolic SAR - Extended (Overlap Studies) + + Inputs: + prices: ['high', 'low'] + 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 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + length = check_length2(high, low) + outreal = NaN + retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_SAREXT", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_SIN( np.ndarray real not None ): + """ SIN(real) + + Vector Trigonometric Sin (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_SINH( np.ndarray real not None ): + """ SINH(real) + + Vector Trigonometric Sinh (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_SINH", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ SMA(real[, timeperiod=?]) + + Simple Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_SMA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_SQRT( np.ndarray real not None ): + """ SQRT(real) + + Vector Square Root (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + """ STDDEV(real[, timeperiod=?, nbdev=?]) + + Standard Deviation (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 5 + nbdev: 1.0 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + _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 stream_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 + slowd_period: 3 + slowd_matype: 0 + Outputs: + slowk + slowd + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outslowk + double outslowd + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outslowk = NaN + outslowd = NaN + retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) + _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 stream_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 + Outputs: + fastk + fastd + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outfastk + double outfastd + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outfastk = NaN + outfastd = NaN + retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + _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 stream_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 + Outputs: + fastk + fastd + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outfastk + double outfastd + real = check_array(real) + real_data = real.data + length = real.shape[0] + outfastk = NaN + outfastd = NaN + retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + _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 stream_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 + TA_RetCode retCode + double* real0_data + double* real1_data + int outbegidx + int outnbelement + double outreal + real0 = check_array(real0) + real0_data = real0.data + real1 = check_array(real1) + real1_data = real1.data + length = check_length2(real0, real1) + outreal = NaN + retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + _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 stream_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 + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _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 stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + """ T3(real[, timeperiod=?, vfactor=?]) + + Triple Exponential Moving Average (T3) (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 5 + vfactor: 0.7 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_T3", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TAN( np.ndarray real not None ): + """ TAN(real) + + Vector Trigonometric Tan (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TAN", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TANH( np.ndarray real not None ): + """ TANH(real) + + Vector Trigonometric Tanh (Math Transform) + + Inputs: + real: (any ndarray) + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TANH", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ TEMA(real[, timeperiod=?]) + + Triple Exponential Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TEMA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ TRANGE(high, low, close) + + True Range (Volatility Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TRANGE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ TRIMA(real[, timeperiod=?]) + + Triangular Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TRIMA", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + """ TRIX(real[, timeperiod=?]) + + 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TRIX", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): + """ TSF(real[, timeperiod=?]) + + Time Series Forecast (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TSF", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ TYPPRICE(high, low, close) + + Typical Price (Price Transform) + + Inputs: + prices: ['high', 'low', 'close'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_TYPPRICE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) + + Ultimate Oscillator (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod1: 7 + timeperiod2: 14 + timeperiod3: 28 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_ULTOSC", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + """ VAR(real[, timeperiod=?, nbdev=?]) + + Variance (Statistic Functions) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 5 + nbdev: 1.0 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_VAR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + """ WCLPRICE(high, low, close) + + Weighted Close Price (Price Transform) + + Inputs: + prices: ['high', 'low', 'close'] + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_WCLPRICE", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + """ WILLR(high, low, close[, timeperiod=?]) + + Williams' %R (Momentum Indicators) + + Inputs: + prices: ['high', 'low', 'close'] + Parameters: + timeperiod: 14 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* high_data + double* low_data + double* close_data + int outbegidx + int outnbelement + double outreal + high = check_array(high) + high_data = high.data + low = check_array(low) + low_data = low.data + close = check_array(close) + close_data = close.data + length = check_length3(high, low, close) + outreal = NaN + retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_WILLR", retCode) + return outreal + +@wraparound(False) # turn off relative indexing from end of lists +@boundscheck(False) # turn off bounds-checking for entire function +def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + """ WMA(real[, timeperiod=?]) + + Weighted Moving Average (Overlap Studies) + + Inputs: + real: (any ndarray) + Parameters: + timeperiod: 30 + Outputs: + real + """ + cdef: + np.npy_intp length + TA_RetCode retCode + double* real_data + int outbegidx + int outnbelement + double outreal + real = check_array(real) + real_data = real.data + length = real.shape[0] + outreal = NaN + retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + _ta_check_success("TA_WMA", retCode) + return outreal + diff --git a/talib/_ta_lib.c b/talib/_ta_lib.c index dd34fda67..6085feeaa 100644 --- a/talib/_ta_lib.c +++ b/talib/_ta_lib.c @@ -14,40 +14,25 @@ "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/arrayscalars.h", "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarrayobject.h", "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ndarraytypes.h", - "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ufuncobject.h" + "/home/jia/.virtualenvs/pydata/lib/python3.12/site-packages/numpy/_core/include/numpy/ufuncobject.h", + "c-ta-lib/include/ta-lib/ta_abstract.h", + "c-ta-lib/include/ta-lib/ta_common.h", + "c-ta-lib/include/ta-lib/ta_defs.h", + "c-ta-lib/include/ta-lib/ta_func.h" + ], + "extra_objects": [ + "c-ta-lib/lib/libta_lib.a" ], "include_dirs": [ - "/usr/include", - "/usr/local/include", - "/opt/include", - "/opt/local/include", - "/opt/homebrew/include", - "/opt/homebrew/opt/ta-lib/include", + "c-ta-lib/include", "/home/jia/.virtualenvs/pydata/lib/python3.12/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" + "c-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" + "c-ta-lib/lib" ], "sources": [ "talib/_ta_lib.pyx" @@ -1564,6 +1549,7 @@ static const char *__pyx_f[] = { "talib/_abstract.pxi", "__init__.cython-30.pxd", "talib/_func.pxi", + "talib/_stream.pxi", "talib/_ta_lib.pyx", "type.pxd", }; @@ -3050,7 +3036,7 @@ static const char __pyx_k_TANH[] = "TANH"; static const char __pyx_k_TEMA[] = "TEMA"; static const char __pyx_k_TRIX[] = "TRIX"; static const char __pyx_k__240[] = "*"; -static const char __pyx_k__307[] = "?"; +static const char __pyx_k__503[] = "?"; static const char __pyx_k_args[] = "args"; static const char __pyx_k_call[] = "__call__"; static const char __pyx_k_copy[] = "copy"; @@ -3262,6 +3248,7 @@ static const char __pyx_k_WCLPRICE[] = "WCLPRICE"; static const char __pyx_k_defaults[] = "defaults"; static const char __pyx_k_is_empty[] = "is_empty"; static const char __pyx_k_lookback[] = "lookback"; +static const char __pyx_k_low_data[] = "low_data"; static const char __pyx_k_outfastd[] = "outfastd"; static const char __pyx_k_outfastk[] = "outfastk"; static const char __pyx_k_outslowd[] = "outslowd"; @@ -3302,16 +3289,24 @@ static const char __pyx_k_func_info[] = "func_info"; static const char __pyx_k_func_line[] = "func_line"; static const char __pyx_k_functions[] = "functions"; static const char __pyx_k_get_flags[] = "__get_flags"; +static const char __pyx_k_high_data[] = "high_data"; static const char __pyx_k_maxperiod[] = "maxperiod"; static const char __pyx_k_metaclass[] = "__metaclass__"; static const char __pyx_k_minperiod[] = "minperiod"; +static const char __pyx_k_open_data[] = "open_data"; static const char __pyx_k_opt_input[] = "opt_input"; static const char __pyx_k_outbegidx[] = "outbegidx"; static const char __pyx_k_outmaxidx[] = "outmaxidx"; static const char __pyx_k_outminidx[] = "outminidx"; static const char __pyx_k_rangetype[] = "rangetype"; +static const char __pyx_k_real_data[] = "real_data"; static const char __pyx_k_slowlimit[] = "slowlimit"; static const char __pyx_k_str2bytes[] = "str2bytes"; +static const char __pyx_k_stream_AD[] = "stream_AD"; +static const char __pyx_k_stream_DX[] = "stream_DX"; +static const char __pyx_k_stream_LN[] = "stream_LN"; +static const char __pyx_k_stream_MA[] = "stream_MA"; +static const char __pyx_k_stream_T3[] = "stream_T3"; static const char __pyx_k_stream__s[] = "stream_%s"; static const char __pyx_k_threading[] = "threading"; static const char __pyx_k_timeStamp[] = "timeStamp"; @@ -3331,6 +3326,7 @@ static const char __pyx_k_TA_MACDFIX[] = "TA_MACDFIX"; static const char __pyx_k_TA_PLUS_DI[] = "TA_PLUS_DI"; static const char __pyx_k_TA_PLUS_DM[] = "TA_PLUS_DM"; static const char __pyx_k_TA_ROCR100[] = "TA_ROCR100"; +static const char __pyx_k_close_data[] = "close_data"; static const char __pyx_k_fastmatype[] = "fastmatype"; static const char __pyx_k_fastperiod[] = "fastperiod"; static const char __pyx_k_input_name[] = "input_name"; @@ -3341,10 +3337,40 @@ static const char __pyx_k_outinphase[] = "outinphase"; static const char __pyx_k_outinteger[] = "outinteger"; static const char __pyx_k_param_name[] = "param_name"; static const char __pyx_k_parameters[] = "parameters"; +static const char __pyx_k_real0_data[] = "real0_data"; +static const char __pyx_k_real1_data[] = "real1_data"; static const char __pyx_k_skip_first[] = "skip_first"; static const char __pyx_k_slowmatype[] = "slowmatype"; static const char __pyx_k_slowperiod[] = "slowperiod"; static const char __pyx_k_startvalue[] = "startvalue"; +static const char __pyx_k_stream_ADD[] = "stream_ADD"; +static const char __pyx_k_stream_ADX[] = "stream_ADX"; +static const char __pyx_k_stream_APO[] = "stream_APO"; +static const char __pyx_k_stream_ATR[] = "stream_ATR"; +static const char __pyx_k_stream_BOP[] = "stream_BOP"; +static const char __pyx_k_stream_CCI[] = "stream_CCI"; +static const char __pyx_k_stream_CMO[] = "stream_CMO"; +static const char __pyx_k_stream_COS[] = "stream_COS"; +static const char __pyx_k_stream_DIV[] = "stream_DIV"; +static const char __pyx_k_stream_EMA[] = "stream_EMA"; +static const char __pyx_k_stream_EXP[] = "stream_EXP"; +static const char __pyx_k_stream_MAX[] = "stream_MAX"; +static const char __pyx_k_stream_MFI[] = "stream_MFI"; +static const char __pyx_k_stream_MIN[] = "stream_MIN"; +static const char __pyx_k_stream_MOM[] = "stream_MOM"; +static const char __pyx_k_stream_OBV[] = "stream_OBV"; +static const char __pyx_k_stream_PPO[] = "stream_PPO"; +static const char __pyx_k_stream_ROC[] = "stream_ROC"; +static const char __pyx_k_stream_RSI[] = "stream_RSI"; +static const char __pyx_k_stream_SAR[] = "stream_SAR"; +static const char __pyx_k_stream_SIN[] = "stream_SIN"; +static const char __pyx_k_stream_SMA[] = "stream_SMA"; +static const char __pyx_k_stream_SUB[] = "stream_SUB"; +static const char __pyx_k_stream_SUM[] = "stream_SUM"; +static const char __pyx_k_stream_TAN[] = "stream_TAN"; +static const char __pyx_k_stream_TSF[] = "stream_TSF"; +static const char __pyx_k_stream_VAR[] = "stream_VAR"; +static const char __pyx_k_stream_WMA[] = "stream_WMA"; static const char __pyx_k_ta_version[] = "__ta_version__"; static const char __pyx_k_timeperiod[] = "timeperiod"; static const char __pyx_k_ARRAY_TYPES[] = "__ARRAY_TYPES"; @@ -3387,12 +3413,34 @@ static const char __pyx_k_outmacdhist[] = "outmacdhist"; static const char __pyx_k_output_name[] = "output_name"; static const char __pyx_k_penetration[] = "penetration"; static const char __pyx_k_settingtype[] = "settingtype"; +static const char __pyx_k_stream_ACOS[] = "stream_ACOS"; +static const char __pyx_k_stream_ADXR[] = "stream_ADXR"; +static const char __pyx_k_stream_ASIN[] = "stream_ASIN"; +static const char __pyx_k_stream_ATAN[] = "stream_ATAN"; +static const char __pyx_k_stream_BETA[] = "stream_BETA"; +static const char __pyx_k_stream_CEIL[] = "stream_CEIL"; +static const char __pyx_k_stream_COSH[] = "stream_COSH"; +static const char __pyx_k_stream_DEMA[] = "stream_DEMA"; +static const char __pyx_k_stream_KAMA[] = "stream_KAMA"; +static const char __pyx_k_stream_MACD[] = "stream_MACD"; +static const char __pyx_k_stream_MAMA[] = "stream_MAMA"; +static const char __pyx_k_stream_MAVP[] = "stream_MAVP"; +static const char __pyx_k_stream_MULT[] = "stream_MULT"; +static const char __pyx_k_stream_NATR[] = "stream_NATR"; +static const char __pyx_k_stream_ROCP[] = "stream_ROCP"; +static const char __pyx_k_stream_ROCR[] = "stream_ROCR"; +static const char __pyx_k_stream_SINH[] = "stream_SINH"; +static const char __pyx_k_stream_SQRT[] = "stream_SQRT"; +static const char __pyx_k_stream_TANH[] = "stream_TANH"; +static const char __pyx_k_stream_TEMA[] = "stream_TEMA"; +static const char __pyx_k_stream_TRIX[] = "stream_TRIX"; static const char __pyx_k_ta_shutdown[] = "_ta_shutdown"; static const char __pyx_k_timeperiod1[] = "timeperiod1"; static const char __pyx_k_timeperiod2[] = "timeperiod2"; static const char __pyx_k_timeperiod3[] = "timeperiod3"; static const char __pyx_k_update_info[] = "update_info"; static const char __pyx_k_value_range[] = "value_range"; +static const char __pyx_k_volume_data[] = "volume_data"; static const char __pyx_k_BodyVeryLong[] = "BodyVeryLong"; static const char __pyx_k_CDLBREAKAWAY[] = "CDLBREAKAWAY"; static const char __pyx_k_CDLENGULFING[] = "CDLENGULFING"; @@ -3427,6 +3475,7 @@ static const char __pyx_k_outaroondown[] = "outaroondown"; static const char __pyx_k_outnbelement[] = "outnbelement"; static const char __pyx_k_output_flags[] = "output_flags"; static const char __pyx_k_output_names[] = "output_names"; +static const char __pyx_k_periods_data[] = "periods_data"; static const char __pyx_k_price_series[] = "price_series"; static const char __pyx_k_signalmatype[] = "signalmatype"; static const char __pyx_k_signalperiod[] = "signalperiod"; @@ -3434,6 +3483,13 @@ static const char __pyx_k_slowd_matype[] = "slowd_matype"; static const char __pyx_k_slowd_period[] = "slowd_period"; static const char __pyx_k_slowk_matype[] = "slowk_matype"; static const char __pyx_k_slowk_period[] = "slowk_period"; +static const char __pyx_k_stream_ADOSC[] = "stream_ADOSC"; +static const char __pyx_k_stream_AROON[] = "stream_AROON"; +static const char __pyx_k_stream_FLOOR[] = "stream_FLOOR"; +static const char __pyx_k_stream_LOG10[] = "stream_LOG10"; +static const char __pyx_k_stream_STOCH[] = "stream_STOCH"; +static const char __pyx_k_stream_TRIMA[] = "stream_TRIMA"; +static const char __pyx_k_stream_WILLR[] = "stream_WILLR"; static const char __pyx_k_CDLHANGINGMAN[] = "CDLHANGINGMAN"; static const char __pyx_k_CDLHIKKAKEMOD[] = "CDLHIKKAKEMOD"; static const char __pyx_k_Function_info[] = "Function.info"; @@ -3457,6 +3513,14 @@ static const char __pyx_k_init_subclass[] = "__init_subclass__"; static const char __pyx_k_outmacdsignal[] = "outmacdsignal"; static const char __pyx_k_outputs_valid[] = "outputs_valid"; static const char __pyx_k_outquadrature[] = "outquadrature"; +static const char __pyx_k_stream_BBANDS[] = "stream_BBANDS"; +static const char __pyx_k_stream_CORREL[] = "stream_CORREL"; +static const char __pyx_k_stream_MINMAX[] = "stream_MINMAX"; +static const char __pyx_k_stream_SAREXT[] = "stream_SAREXT"; +static const char __pyx_k_stream_STDDEV[] = "stream_STDDEV"; +static const char __pyx_k_stream_STOCHF[] = "stream_STOCHF"; +static const char __pyx_k_stream_TRANGE[] = "stream_TRANGE"; +static const char __pyx_k_stream_ULTOSC[] = "stream_ULTOSC"; static const char __pyx_k_ta_initialize[] = "_ta_initialize"; static const char __pyx_k_talib__ta_lib[] = "talib._ta_lib"; static const char __pyx_k_CDL3BLACKCROWS[] = "CDL3BLACKCROWS"; @@ -3490,6 +3554,13 @@ static const char __pyx_k_num_opt_inputs[] = "num_opt_inputs"; static const char __pyx_k_outmaxidx_data[] = "outmaxidx_data"; static const char __pyx_k_outminidx_data[] = "outminidx_data"; static const char __pyx_k_set_parameters[] = "set_parameters"; +static const char __pyx_k_stream_CDLDOJI[] = "stream_CDLDOJI"; +static const char __pyx_k_stream_HT_SINE[] = "stream_HT_SINE"; +static const char __pyx_k_stream_MACDEXT[] = "stream_MACDEXT"; +static const char __pyx_k_stream_MACDFIX[] = "stream_MACDFIX"; +static const char __pyx_k_stream_PLUS_DI[] = "stream_PLUS_DI"; +static const char __pyx_k_stream_PLUS_DM[] = "stream_PLUS_DM"; +static const char __pyx_k_stream_ROCR100[] = "stream_ROCR100"; static const char __pyx_k_ta_getFuncInfo[] = "_ta_getFuncInfo"; static const char __pyx_k_CDLADVANCEBLOCK[] = "CDLADVANCEBLOCK"; static const char __pyx_k_CDLHOMINGPIGEON[] = "CDLHOMINGPIGEON"; @@ -3515,6 +3586,18 @@ static const char __pyx_k_get_input_names[] = "get_input_names"; static const char __pyx_k_offsetonreverse[] = "offsetonreverse"; static const char __pyx_k_outinteger_data[] = "outinteger_data"; static const char __pyx_k_set_input_names[] = "set_input_names"; +static const char __pyx_k_stream_AROONOSC[] = "stream_AROONOSC"; +static const char __pyx_k_stream_AVGPRICE[] = "stream_AVGPRICE"; +static const char __pyx_k_stream_MAXINDEX[] = "stream_MAXINDEX"; +static const char __pyx_k_stream_MEDPRICE[] = "stream_MEDPRICE"; +static const char __pyx_k_stream_MIDPOINT[] = "stream_MIDPOINT"; +static const char __pyx_k_stream_MIDPRICE[] = "stream_MIDPRICE"; +static const char __pyx_k_stream_MININDEX[] = "stream_MININDEX"; +static const char __pyx_k_stream_MINUS_DI[] = "stream_MINUS_DI"; +static const char __pyx_k_stream_MINUS_DM[] = "stream_MINUS_DM"; +static const char __pyx_k_stream_STOCHRSI[] = "stream_STOCHRSI"; +static const char __pyx_k_stream_TYPPRICE[] = "stream_TYPPRICE"; +static const char __pyx_k_stream_WCLPRICE[] = "stream_WCLPRICE"; static const char __pyx_k_ta_getFuncTable[] = "_ta_getFuncTable"; static const char __pyx_k_talib__func_pxi[] = "talib/_func.pxi"; static const char __pyx_k_CDL3STARSINSOUTH[] = "CDL3STARSINSOUTH"; @@ -3536,6 +3619,14 @@ static const char __pyx_k_opt_input_values[] = "opt_input_values"; static const char __pyx_k_outreallowerband[] = "outreallowerband"; static const char __pyx_k_outrealupperband[] = "outrealupperband"; static const char __pyx_k_set_input_arrays[] = "set_input_arrays"; +static const char __pyx_k_stream_CDL2CROWS[] = "stream_CDL2CROWS"; +static const char __pyx_k_stream_CDLHAMMER[] = "stream_CDLHAMMER"; +static const char __pyx_k_stream_CDLHARAMI[] = "stream_CDLHARAMI"; +static const char __pyx_k_stream_CDLINNECK[] = "stream_CDLINNECK"; +static const char __pyx_k_stream_CDLONNECK[] = "stream_CDLONNECK"; +static const char __pyx_k_stream_CDLTAKURI[] = "stream_CDLTAKURI"; +static const char __pyx_k_stream_HT_PHASOR[] = "stream_HT_PHASOR"; +static const char __pyx_k_stream_LINEARREG[] = "stream_LINEARREG"; static const char __pyx_k_ta_check_success[] = "_ta_check_success"; static const char __pyx_k_ta_func_unst_ids[] = "_ta_func_unst_ids"; static const char __pyx_k_ta_getGroupTable[] = "_ta_getGroupTable"; @@ -3565,7 +3656,14 @@ static const char __pyx_k_accelerationshort[] = "accelerationshort"; static const char __pyx_k_flags_lookup_dict[] = "flags_lookup_dict"; static const char __pyx_k_outrealmiddleband[] = "outrealmiddleband"; static const char __pyx_k_set_function_args[] = "set_function_args"; +static const char __pyx_k_stream_CDL3INSIDE[] = "stream_CDL3INSIDE"; +static const char __pyx_k_stream_CDLHIKKAKE[] = "stream_CDLHIKKAKE"; +static const char __pyx_k_stream_CDLKICKING[] = "stream_CDLKICKING"; +static const char __pyx_k_stream_CDLMATHOLD[] = "stream_CDLMATHOLD"; +static const char __pyx_k_stream_CDLTRISTAR[] = "stream_CDLTRISTAR"; +static const char __pyx_k_stream_HT_DCPHASE[] = "stream_HT_DCPHASE"; static const char __pyx_k_talib__common_pxi[] = "talib/_common.pxi"; +static const char __pyx_k_talib__stream_pxi[] = "talib/_stream.pxi"; static const char __pyx_k_CDLCLOSINGMARUBOZU[] = "CDLCLOSINGMARUBOZU"; static const char __pyx_k_CDLEVENINGDOJISTAR[] = "CDLEVENINGDOJISTAR"; static const char __pyx_k_CDLIDENTICAL3CROWS[] = "CDLIDENTICAL3CROWS"; @@ -3587,6 +3685,15 @@ static const char __pyx_k_TA_LINEARREG_SLOPE[] = "TA_LINEARREG_SLOPE"; static const char __pyx_k_TA_ParamHolderFree[] = "TA_ParamHolderFree"; static const char __pyx_k_asyncio_coroutines[] = "asyncio.coroutines"; static const char __pyx_k_cline_in_traceback[] = "cline_in_traceback"; +static const char __pyx_k_stream_CDL3OUTSIDE[] = "stream_CDL3OUTSIDE"; +static const char __pyx_k_stream_CDLBELTHOLD[] = "stream_CDLBELTHOLD"; +static const char __pyx_k_stream_CDLDOJISTAR[] = "stream_CDLDOJISTAR"; +static const char __pyx_k_stream_CDLHIGHWAVE[] = "stream_CDLHIGHWAVE"; +static const char __pyx_k_stream_CDLLONGLINE[] = "stream_CDLLONGLINE"; +static const char __pyx_k_stream_CDLMARUBOZU[] = "stream_CDLMARUBOZU"; +static const char __pyx_k_stream_CDLPIERCING[] = "stream_CDLPIERCING"; +static const char __pyx_k_stream_HT_DCPERIOD[] = "stream_HT_DCPERIOD"; +static const char __pyx_k_stream_MINMAXINDEX[] = "stream_MINMAXINDEX"; static const char __pyx_k_CDLCONCEALBABYSWALL[] = "CDLCONCEALBABYSWALL"; static const char __pyx_k_CDLGAPSIDESIDEWHITE[] = "CDLGAPSIDESIDEWHITE"; static const char __pyx_k_CDLRISEFALL3METHODS[] = "CDLRISEFALL3METHODS"; @@ -3603,6 +3710,13 @@ static const char __pyx_k_TA_ParamHolderAlloc[] = "TA_ParamHolderAlloc"; static const char __pyx_k_TA_SetCompatibility[] = "TA_SetCompatibility"; static const char __pyx_k_accelerationmaxlong[] = "accelerationmaxlong"; static const char __pyx_k_get_opt_input_value[] = "__get_opt_input_value"; +static const char __pyx_k_stream_CDLBREAKAWAY[] = "stream_CDLBREAKAWAY"; +static const char __pyx_k_stream_CDLENGULFING[] = "stream_CDLENGULFING"; +static const char __pyx_k_stream_CDLSHORTLINE[] = "stream_CDLSHORTLINE"; +static const char __pyx_k_stream_CDLTASUKIGAP[] = "stream_CDLTASUKIGAP"; +static const char __pyx_k_stream_CDLTHRUSTING[] = "stream_CDLTHRUSTING"; +static const char __pyx_k_stream_HT_TRENDLINE[] = "stream_HT_TRENDLINE"; +static const char __pyx_k_stream_HT_TRENDMODE[] = "stream_HT_TRENDMODE"; static const char __pyx_k_talib__abstract_pxi[] = "talib/_abstract.pxi"; static const char __pyx_k_TA_CDL3WHITESOLDIERS[] = "TA_CDL3WHITESOLDIERS"; static const char __pyx_k_TA_CDLDARKCLOUDCOVER[] = "TA_CDLDARKCLOUDCOVER"; @@ -3614,6 +3728,8 @@ static const char __pyx_k_TA_SetCandleSettings[] = "TA_SetCandleSettings"; static const char __pyx_k_TA_SetUnstablePeriod[] = "TA_SetUnstablePeriod"; static const char __pyx_k_accelerationinitlong[] = "accelerationinitlong"; static const char __pyx_k_accelerationmaxshort[] = "accelerationmaxshort"; +static const char __pyx_k_stream_CDLHANGINGMAN[] = "stream_CDLHANGINGMAN"; +static const char __pyx_k_stream_CDLHIKKAKEMOD[] = "stream_CDLHIKKAKEMOD"; static const char __pyx_k_ta_get_compatibility[] = "_ta_get_compatibility"; static const char __pyx_k_ta_set_compatibility[] = "_ta_set_compatibility"; static const char __pyx_k_Function_output_flags[] = "Function.output_flags"; @@ -3630,6 +3746,14 @@ static const char __pyx_k_TA_CDLUPSIDEGAP2CROWS[] = "TA_CDLUPSIDEGAP2CROWS"; static const char __pyx_k_accelerationinitshort[] = "accelerationinitshort"; static const char __pyx_k_check_opt_input_value[] = "__check_opt_input_value"; static const char __pyx_k_get_defaults_and_docs[] = "_get_defaults_and_docs"; +static const char __pyx_k_stream_CDL3BLACKCROWS[] = "stream_CDL3BLACKCROWS"; +static const char __pyx_k_stream_CDL3LINESTRIKE[] = "stream_CDL3LINESTRIKE"; +static const char __pyx_k_stream_CDLEVENINGSTAR[] = "stream_CDLEVENINGSTAR"; +static const char __pyx_k_stream_CDLHARAMICROSS[] = "stream_CDLHARAMICROSS"; +static const char __pyx_k_stream_CDLMATCHINGLOW[] = "stream_CDLMATCHINGLOW"; +static const char __pyx_k_stream_CDLMORNINGSTAR[] = "stream_CDLMORNINGSTAR"; +static const char __pyx_k_stream_CDLRICKSHAWMAN[] = "stream_CDLRICKSHAWMAN"; +static const char __pyx_k_stream_CDLSPINNINGTOP[] = "stream_CDLSPINNINGTOP"; static const char __pyx_k_Output_can_be_negative[] = "Output can be negative"; static const char __pyx_k_Output_can_be_positive[] = "Output can be positive"; static const char __pyx_k_TA_CDLCONCEALBABYSWALL[] = "TA_CDLCONCEALBABYSWALL"; @@ -3638,6 +3762,13 @@ static const char __pyx_k_TA_CDLRISEFALL3METHODS[] = "TA_CDLRISEFALL3METHODS"; static const char __pyx_k_TA_CDLXSIDEGAP3METHODS[] = "TA_CDLXSIDEGAP3METHODS"; static const char __pyx_k_TA_LINEARREG_INTERCEPT[] = "TA_LINEARREG_INTERCEPT"; static const char __pyx_k_display_name_s_group_s[] = "%(display_name)s (%(group)s)\n"; +static const char __pyx_k_stream_CDLADVANCEBLOCK[] = "stream_CDLADVANCEBLOCK"; +static const char __pyx_k_stream_CDLHOMINGPIGEON[] = "stream_CDLHOMINGPIGEON"; +static const char __pyx_k_stream_CDLLADDERBOTTOM[] = "stream_CDLLADDERBOTTOM"; +static const char __pyx_k_stream_CDLSHOOTINGSTAR[] = "stream_CDLSHOOTINGSTAR"; +static const char __pyx_k_stream_CDLUNIQUE3RIVER[] = "stream_CDLUNIQUE3RIVER"; +static const char __pyx_k_stream_LINEARREG_ANGLE[] = "stream_LINEARREG_ANGLE"; +static const char __pyx_k_stream_LINEARREG_SLOPE[] = "stream_LINEARREG_SLOPE"; static const char __pyx_k_ta_get_unstable_period[] = "_ta_get_unstable_period"; static const char __pyx_k_ta_set_candle_settings[] = "_ta_set_candle_settings"; static const char __pyx_k_ta_set_unstable_period[] = "_ta_set_unstable_period"; @@ -3648,6 +3779,11 @@ static const char __pyx_k_Function_set_parameters[] = "Function.set_parameters"; static const char __pyx_k_Output_is_a_candlestick[] = "Output is a candlestick"; static const char __pyx_k_TA_SetOptInputParamReal[] = "TA_SetOptInputParamReal"; static const char __pyx_k_Weighted_Moving_Average[] = "Weighted Moving Average"; +static const char __pyx_k_stream_CDL3STARSINSOUTH[] = "stream_CDL3STARSINSOUTH"; +static const char __pyx_k_stream_CDLABANDONEDBABY[] = "stream_CDLABANDONEDBABY"; +static const char __pyx_k_stream_CDLCOUNTERATTACK[] = "stream_CDLCOUNTERATTACK"; +static const char __pyx_k_stream_CDLDRAGONFLYDOJI[] = "stream_CDLDRAGONFLYDOJI"; +static const char __pyx_k_stream_CDLSTICKSANDWICH[] = "stream_CDLSTICKSANDWICH"; static const char __pyx_k_Bad_Object_TA_BAD_OBJECT[] = "Bad Object (TA_BAD_OBJECT)"; static const char __pyx_k_Function___call_function[] = "Function.__call_function"; static const char __pyx_k_Function_get_input_names[] = "Function.get_input_names"; @@ -3656,11 +3792,24 @@ static const char __pyx_k_TA_GetInputParameterInfo[] = "TA_GetInputParameterInfo static const char __pyx_k_input_price_series_names[] = "input_price_series_names"; static const char __pyx_k_no_existing_input_arrays[] = "no_existing_input_arrays"; static const char __pyx_k_price_series_name_values[] = "price_series_name_values"; +static const char __pyx_k_stream_CDL3WHITESOLDIERS[] = "stream_CDL3WHITESOLDIERS"; +static const char __pyx_k_stream_CDLDARKCLOUDCOVER[] = "stream_CDLDARKCLOUDCOVER"; +static const char __pyx_k_stream_CDLGRAVESTONEDOJI[] = "stream_CDLGRAVESTONEDOJI"; +static const char __pyx_k_stream_CDLINVERTEDHAMMER[] = "stream_CDLINVERTEDHAMMER"; +static const char __pyx_k_stream_CDLLONGLEGGEDDOJI[] = "stream_CDLLONGLEGGEDDOJI"; +static const char __pyx_k_stream_CDLSTALLEDPATTERN[] = "stream_CDLSTALLEDPATTERN"; static const char __pyx_k_ta_getInputParameterInfo[] = "_ta_getInputParameterInfo"; static const char __pyx_k_Function_get_input_arrays[] = "Function.get_input_arrays"; static const char __pyx_k_Function_set_input_arrays[] = "Function.set_input_arrays"; static const char __pyx_k_TA_GetOutputParameterInfo[] = "TA_GetOutputParameterInfo"; static const char __pyx_k_Triangular_Moving_Average[] = "Triangular Moving Average"; +static const char __pyx_k_stream_CDLCLOSINGMARUBOZU[] = "stream_CDLCLOSINGMARUBOZU"; +static const char __pyx_k_stream_CDLEVENINGDOJISTAR[] = "stream_CDLEVENINGDOJISTAR"; +static const char __pyx_k_stream_CDLIDENTICAL3CROWS[] = "stream_CDLIDENTICAL3CROWS"; +static const char __pyx_k_stream_CDLKICKINGBYLENGTH[] = "stream_CDLKICKINGBYLENGTH"; +static const char __pyx_k_stream_CDLMORNINGDOJISTAR[] = "stream_CDLMORNINGDOJISTAR"; +static const char __pyx_k_stream_CDLSEPARATINGLINES[] = "stream_CDLSEPARATINGLINES"; +static const char __pyx_k_stream_CDLUPSIDEGAP2CROWS[] = "stream_CDLUPSIDEGAP2CROWS"; static const char __pyx_k_ta_getOutputParameterInfo[] = "_ta_getOutputParameterInfo"; static const char __pyx_k_Bad_Parameter_TA_BAD_PARAM[] = "Bad Parameter (TA_BAD_PARAM)"; static const char __pyx_k_Exponential_Moving_Average[] = "Exponential Moving Average"; @@ -3668,6 +3817,11 @@ static const char __pyx_k_Function_set_function_args[] = "Function.set_function_ static const char __pyx_k_Output_scale_same_as_input[] = "Output scale same as input"; static const char __pyx_k_TA_SetOptInputParamInteger[] = "TA_SetOptInputParamInteger"; static const char __pyx_k_input_price_series_names_2[] = "__input_price_series_names"; +static const char __pyx_k_stream_CDLCONCEALBABYSWALL[] = "stream_CDLCONCEALBABYSWALL"; +static const char __pyx_k_stream_CDLGAPSIDESIDEWHITE[] = "stream_CDLGAPSIDESIDEWHITE"; +static const char __pyx_k_stream_CDLRISEFALL3METHODS[] = "stream_CDLRISEFALL3METHODS"; +static const char __pyx_k_stream_CDLXSIDEGAP3METHODS[] = "stream_CDLXSIDEGAP3METHODS"; +static const char __pyx_k_stream_LINEARREG_INTERCEPT[] = "stream_LINEARREG_INTERCEPT"; static const char __pyx_k_INPUT_PRICE_SERIES_DEFAULTS[] = "__INPUT_PRICE_SERIES_DEFAULTS"; static const char __pyx_k_TA_GetOptInputParameterInfo[] = "TA_GetOptInputParameterInfo"; static const char __pyx_k_ta_getOptInputParameterInfo[] = "_ta_getOptInputParameterInfo"; @@ -3923,6 +4077,164 @@ static PyObject *__pyx_pf_5talib_7_ta_lib_350_ta_getInputParameterInfo(CYTHON_UN static PyObject *__pyx_pf_5talib_7_ta_lib_352_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_354_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_356_get_defaults_and_docs(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_func_info); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(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_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(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_366stream_ADX(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_368stream_ADXR(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_370stream_APO(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_372stream_AROON(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_374stream_AROONOSC(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_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(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_382stream_AVGPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(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_386stream_BETA(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_388stream_BOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(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_392stream_CDL2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(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_408stream_CDLADVANCEBLOCK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(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_422stream_CDLDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(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_432stream_CDLEVENINGSTAR(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_434stream_CDLGAPSIDESIDEWHITE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(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_476stream_CDLMORNINGDOJISTAR(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_478stream_CDLMORNINGSTAR(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_480stream_CDLONNECK(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_open, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(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_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(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_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(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_564stream_MACD(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_566stream_MACDEXT(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_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(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_572stream_MAVP(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_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(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_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(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_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_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_596stream_MINUS_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_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(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_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_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_608stream_PLUS_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_610stream_PPO(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_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(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_624stream_SAREXT(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_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(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_636stream_STOCH(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_638stream_STOCHF(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_640stream_STOCHRSI(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_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(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_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(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_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ +static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(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_664stream_ULTOSC(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_666stream_VAR(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_668stream_WCLPRICE(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_670stream_WILLR(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_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod); /* proto */ static __Pyx_CachedCFunction __pyx_umethod_PyDict_Type_keys = {0, 0, 0, 0, 0}; /* #### Code section: late_includes ### */ /* #### Code section: module_state ### */ @@ -4454,8 +4766,8 @@ typedef struct { PyObject *__pyx_kp_s__11; PyObject *__pyx_kp_s__12; PyObject *__pyx_n_s__240; - PyObject *__pyx_n_s__307; PyObject *__pyx_kp_u__43; + PyObject *__pyx_n_s__503; PyObject *__pyx_kp_s__6; PyObject *__pyx_kp_s__7; PyObject *__pyx_kp_s__9; @@ -4485,6 +4797,7 @@ typedef struct { PyObject *__pyx_n_s_cline_in_traceback; PyObject *__pyx_n_s_clone; PyObject *__pyx_n_s_close; + PyObject *__pyx_n_s_close_data; PyObject *__pyx_n_s_collections; PyObject *__pyx_n_s_column_stack; PyObject *__pyx_n_s_columns; @@ -4529,6 +4842,7 @@ typedef struct { PyObject *__pyx_n_s_groups; PyObject *__pyx_n_s_help; PyObject *__pyx_n_s_high; + PyObject *__pyx_n_s_high_data; PyObject *__pyx_n_s_holder; PyObject *__pyx_n_s_i; PyObject *__pyx_n_s_id; @@ -4567,6 +4881,7 @@ typedef struct { PyObject *__pyx_n_s_lookback; PyObject *__pyx_n_s_lookup; PyObject *__pyx_n_s_low; + PyObject *__pyx_n_s_low_data; PyObject *__pyx_n_s_lower; PyObject *__pyx_n_s_main; PyObject *__pyx_n_s_math; @@ -4602,6 +4917,7 @@ typedef struct { PyObject *__pyx_n_s_offsetonreverse; PyObject *__pyx_n_s_open; PyObject *__pyx_n_s_openInterest; + PyObject *__pyx_n_s_open_data; PyObject *__pyx_n_s_optIn; PyObject *__pyx_n_s_opt_input; PyObject *__pyx_n_s_opt_input_values; @@ -4651,6 +4967,7 @@ typedef struct { PyObject *__pyx_n_s_penetration; PyObject *__pyx_n_s_period; PyObject *__pyx_n_s_periods; + PyObject *__pyx_n_s_periods_data; PyObject *__pyx_n_s_polars; PyObject *__pyx_n_s_pop; PyObject *__pyx_n_s_prepare; @@ -4666,7 +4983,10 @@ typedef struct { PyObject *__pyx_n_s_rangetype; PyObject *__pyx_n_s_real; PyObject *__pyx_n_s_real0; + PyObject *__pyx_n_s_real0_data; PyObject *__pyx_n_s_real1; + PyObject *__pyx_n_s_real1_data; + PyObject *__pyx_n_s_real_data; PyObject *__pyx_n_s_replace; PyObject *__pyx_n_s_repr; PyObject *__pyx_n_s_results; @@ -4704,6 +5024,164 @@ typedef struct { PyObject *__pyx_n_s_startvalue; PyObject *__pyx_n_s_str; PyObject *__pyx_n_s_str2bytes; + PyObject *__pyx_n_s_stream_ACOS; + PyObject *__pyx_n_s_stream_AD; + PyObject *__pyx_n_s_stream_ADD; + PyObject *__pyx_n_s_stream_ADOSC; + PyObject *__pyx_n_s_stream_ADX; + PyObject *__pyx_n_s_stream_ADXR; + PyObject *__pyx_n_s_stream_APO; + PyObject *__pyx_n_s_stream_AROON; + PyObject *__pyx_n_s_stream_AROONOSC; + PyObject *__pyx_n_s_stream_ASIN; + PyObject *__pyx_n_s_stream_ATAN; + PyObject *__pyx_n_s_stream_ATR; + PyObject *__pyx_n_s_stream_AVGPRICE; + PyObject *__pyx_n_s_stream_BBANDS; + PyObject *__pyx_n_s_stream_BETA; + PyObject *__pyx_n_s_stream_BOP; + PyObject *__pyx_n_s_stream_CCI; + PyObject *__pyx_n_s_stream_CDL2CROWS; + PyObject *__pyx_n_s_stream_CDL3BLACKCROWS; + PyObject *__pyx_n_s_stream_CDL3INSIDE; + PyObject *__pyx_n_s_stream_CDL3LINESTRIKE; + PyObject *__pyx_n_s_stream_CDL3OUTSIDE; + PyObject *__pyx_n_s_stream_CDL3STARSINSOUTH; + PyObject *__pyx_n_s_stream_CDL3WHITESOLDIERS; + PyObject *__pyx_n_s_stream_CDLABANDONEDBABY; + PyObject *__pyx_n_s_stream_CDLADVANCEBLOCK; + PyObject *__pyx_n_s_stream_CDLBELTHOLD; + PyObject *__pyx_n_s_stream_CDLBREAKAWAY; + PyObject *__pyx_n_s_stream_CDLCLOSINGMARUBOZU; + PyObject *__pyx_n_s_stream_CDLCONCEALBABYSWALL; + PyObject *__pyx_n_s_stream_CDLCOUNTERATTACK; + PyObject *__pyx_n_s_stream_CDLDARKCLOUDCOVER; + PyObject *__pyx_n_s_stream_CDLDOJI; + PyObject *__pyx_n_s_stream_CDLDOJISTAR; + PyObject *__pyx_n_s_stream_CDLDRAGONFLYDOJI; + PyObject *__pyx_n_s_stream_CDLENGULFING; + PyObject *__pyx_n_s_stream_CDLEVENINGDOJISTAR; + PyObject *__pyx_n_s_stream_CDLEVENINGSTAR; + PyObject *__pyx_n_s_stream_CDLGAPSIDESIDEWHITE; + PyObject *__pyx_n_s_stream_CDLGRAVESTONEDOJI; + PyObject *__pyx_n_s_stream_CDLHAMMER; + PyObject *__pyx_n_s_stream_CDLHANGINGMAN; + PyObject *__pyx_n_s_stream_CDLHARAMI; + PyObject *__pyx_n_s_stream_CDLHARAMICROSS; + PyObject *__pyx_n_s_stream_CDLHIGHWAVE; + PyObject *__pyx_n_s_stream_CDLHIKKAKE; + PyObject *__pyx_n_s_stream_CDLHIKKAKEMOD; + PyObject *__pyx_n_s_stream_CDLHOMINGPIGEON; + PyObject *__pyx_n_s_stream_CDLIDENTICAL3CROWS; + PyObject *__pyx_n_s_stream_CDLINNECK; + PyObject *__pyx_n_s_stream_CDLINVERTEDHAMMER; + PyObject *__pyx_n_s_stream_CDLKICKING; + PyObject *__pyx_n_s_stream_CDLKICKINGBYLENGTH; + PyObject *__pyx_n_s_stream_CDLLADDERBOTTOM; + PyObject *__pyx_n_s_stream_CDLLONGLEGGEDDOJI; + PyObject *__pyx_n_s_stream_CDLLONGLINE; + PyObject *__pyx_n_s_stream_CDLMARUBOZU; + PyObject *__pyx_n_s_stream_CDLMATCHINGLOW; + PyObject *__pyx_n_s_stream_CDLMATHOLD; + PyObject *__pyx_n_s_stream_CDLMORNINGDOJISTAR; + PyObject *__pyx_n_s_stream_CDLMORNINGSTAR; + PyObject *__pyx_n_s_stream_CDLONNECK; + PyObject *__pyx_n_s_stream_CDLPIERCING; + PyObject *__pyx_n_s_stream_CDLRICKSHAWMAN; + PyObject *__pyx_n_s_stream_CDLRISEFALL3METHODS; + PyObject *__pyx_n_s_stream_CDLSEPARATINGLINES; + PyObject *__pyx_n_s_stream_CDLSHOOTINGSTAR; + PyObject *__pyx_n_s_stream_CDLSHORTLINE; + PyObject *__pyx_n_s_stream_CDLSPINNINGTOP; + PyObject *__pyx_n_s_stream_CDLSTALLEDPATTERN; + PyObject *__pyx_n_s_stream_CDLSTICKSANDWICH; + PyObject *__pyx_n_s_stream_CDLTAKURI; + PyObject *__pyx_n_s_stream_CDLTASUKIGAP; + PyObject *__pyx_n_s_stream_CDLTHRUSTING; + PyObject *__pyx_n_s_stream_CDLTRISTAR; + PyObject *__pyx_n_s_stream_CDLUNIQUE3RIVER; + PyObject *__pyx_n_s_stream_CDLUPSIDEGAP2CROWS; + PyObject *__pyx_n_s_stream_CDLXSIDEGAP3METHODS; + PyObject *__pyx_n_s_stream_CEIL; + PyObject *__pyx_n_s_stream_CMO; + PyObject *__pyx_n_s_stream_CORREL; + PyObject *__pyx_n_s_stream_COS; + PyObject *__pyx_n_s_stream_COSH; + PyObject *__pyx_n_s_stream_DEMA; + PyObject *__pyx_n_s_stream_DIV; + PyObject *__pyx_n_s_stream_DX; + PyObject *__pyx_n_s_stream_EMA; + PyObject *__pyx_n_s_stream_EXP; + PyObject *__pyx_n_s_stream_FLOOR; + PyObject *__pyx_n_s_stream_HT_DCPERIOD; + PyObject *__pyx_n_s_stream_HT_DCPHASE; + PyObject *__pyx_n_s_stream_HT_PHASOR; + PyObject *__pyx_n_s_stream_HT_SINE; + PyObject *__pyx_n_s_stream_HT_TRENDLINE; + PyObject *__pyx_n_s_stream_HT_TRENDMODE; + PyObject *__pyx_n_s_stream_KAMA; + PyObject *__pyx_n_s_stream_LINEARREG; + PyObject *__pyx_n_s_stream_LINEARREG_ANGLE; + PyObject *__pyx_n_s_stream_LINEARREG_INTERCEPT; + PyObject *__pyx_n_s_stream_LINEARREG_SLOPE; + PyObject *__pyx_n_s_stream_LN; + PyObject *__pyx_n_s_stream_LOG10; + PyObject *__pyx_n_s_stream_MA; + PyObject *__pyx_n_s_stream_MACD; + PyObject *__pyx_n_s_stream_MACDEXT; + PyObject *__pyx_n_s_stream_MACDFIX; + PyObject *__pyx_n_s_stream_MAMA; + PyObject *__pyx_n_s_stream_MAVP; + PyObject *__pyx_n_s_stream_MAX; + PyObject *__pyx_n_s_stream_MAXINDEX; + PyObject *__pyx_n_s_stream_MEDPRICE; + PyObject *__pyx_n_s_stream_MFI; + PyObject *__pyx_n_s_stream_MIDPOINT; + PyObject *__pyx_n_s_stream_MIDPRICE; + PyObject *__pyx_n_s_stream_MIN; + PyObject *__pyx_n_s_stream_MININDEX; + PyObject *__pyx_n_s_stream_MINMAX; + PyObject *__pyx_n_s_stream_MINMAXINDEX; + PyObject *__pyx_n_s_stream_MINUS_DI; + PyObject *__pyx_n_s_stream_MINUS_DM; + PyObject *__pyx_n_s_stream_MOM; + PyObject *__pyx_n_s_stream_MULT; + PyObject *__pyx_n_s_stream_NATR; + PyObject *__pyx_n_s_stream_OBV; + PyObject *__pyx_n_s_stream_PLUS_DI; + PyObject *__pyx_n_s_stream_PLUS_DM; + PyObject *__pyx_n_s_stream_PPO; + PyObject *__pyx_n_s_stream_ROC; + PyObject *__pyx_n_s_stream_ROCP; + PyObject *__pyx_n_s_stream_ROCR; + PyObject *__pyx_n_s_stream_ROCR100; + PyObject *__pyx_n_s_stream_RSI; + PyObject *__pyx_n_s_stream_SAR; + PyObject *__pyx_n_s_stream_SAREXT; + PyObject *__pyx_n_s_stream_SIN; + PyObject *__pyx_n_s_stream_SINH; + PyObject *__pyx_n_s_stream_SMA; + PyObject *__pyx_n_s_stream_SQRT; + PyObject *__pyx_n_s_stream_STDDEV; + PyObject *__pyx_n_s_stream_STOCH; + PyObject *__pyx_n_s_stream_STOCHF; + PyObject *__pyx_n_s_stream_STOCHRSI; + PyObject *__pyx_n_s_stream_SUB; + PyObject *__pyx_n_s_stream_SUM; + PyObject *__pyx_n_s_stream_T3; + PyObject *__pyx_n_s_stream_TAN; + PyObject *__pyx_n_s_stream_TANH; + PyObject *__pyx_n_s_stream_TEMA; + PyObject *__pyx_n_s_stream_TRANGE; + PyObject *__pyx_n_s_stream_TRIMA; + PyObject *__pyx_n_s_stream_TRIX; + PyObject *__pyx_n_s_stream_TSF; + PyObject *__pyx_n_s_stream_TYPPRICE; + PyObject *__pyx_n_s_stream_ULTOSC; + PyObject *__pyx_n_s_stream_VAR; + PyObject *__pyx_n_s_stream_WCLPRICE; + PyObject *__pyx_n_s_stream_WILLR; + PyObject *__pyx_n_s_stream_WMA; PyObject *__pyx_kp_s_stream__s; PyObject *__pyx_n_s_super; PyObject *__pyx_n_s_sys; @@ -4728,6 +5206,7 @@ typedef struct { PyObject *__pyx_kp_s_talib__abstract_pxi; PyObject *__pyx_kp_s_talib__common_pxi; PyObject *__pyx_kp_s_talib__func_pxi; + PyObject *__pyx_kp_s_talib__stream_pxi; PyObject *__pyx_n_s_talib__ta_lib; PyObject *__pyx_n_s_test; PyObject *__pyx_n_s_threading; @@ -4749,6 +5228,7 @@ typedef struct { PyObject *__pyx_n_s_version; PyObject *__pyx_n_s_vfactor; PyObject *__pyx_n_s_volume; + PyObject *__pyx_n_s_volume_data; PyObject *__pyx_n_s_xrange; PyObject *__pyx_int_0; PyObject *__pyx_int_1; @@ -4865,6 +5345,44 @@ typedef struct { PyObject *__pyx_tuple__300; PyObject *__pyx_tuple__302; PyObject *__pyx_tuple__305; + PyObject *__pyx_tuple__307; + PyObject *__pyx_tuple__309; + PyObject *__pyx_tuple__311; + PyObject *__pyx_tuple__313; + PyObject *__pyx_tuple__315; + PyObject *__pyx_tuple__318; + PyObject *__pyx_tuple__320; + PyObject *__pyx_tuple__322; + PyObject *__pyx_tuple__327; + PyObject *__pyx_tuple__329; + PyObject *__pyx_tuple__331; + PyObject *__pyx_tuple__335; + PyObject *__pyx_tuple__343; + PyObject *__pyx_tuple__399; + PyObject *__pyx_tuple__412; + PyObject *__pyx_tuple__414; + PyObject *__pyx_tuple__417; + PyObject *__pyx_tuple__426; + PyObject *__pyx_tuple__428; + PyObject *__pyx_tuple__430; + PyObject *__pyx_tuple__432; + PyObject *__pyx_tuple__434; + PyObject *__pyx_tuple__436; + PyObject *__pyx_tuple__439; + PyObject *__pyx_tuple__441; + PyObject *__pyx_tuple__443; + PyObject *__pyx_tuple__449; + PyObject *__pyx_tuple__451; + PyObject *__pyx_tuple__458; + PyObject *__pyx_tuple__468; + PyObject *__pyx_tuple__470; + PyObject *__pyx_tuple__476; + PyObject *__pyx_tuple__478; + PyObject *__pyx_tuple__480; + PyObject *__pyx_tuple__482; + PyObject *__pyx_tuple__486; + PyObject *__pyx_tuple__491; + PyObject *__pyx_tuple__497; PyObject *__pyx_codeobj__14; PyObject *__pyx_codeobj__16; PyObject *__pyx_codeobj__17; @@ -5070,6 +5588,164 @@ typedef struct { PyObject *__pyx_codeobj__303; PyObject *__pyx_codeobj__304; PyObject *__pyx_codeobj__306; + PyObject *__pyx_codeobj__308; + PyObject *__pyx_codeobj__310; + PyObject *__pyx_codeobj__312; + PyObject *__pyx_codeobj__314; + PyObject *__pyx_codeobj__316; + PyObject *__pyx_codeobj__317; + PyObject *__pyx_codeobj__319; + PyObject *__pyx_codeobj__321; + PyObject *__pyx_codeobj__323; + PyObject *__pyx_codeobj__324; + PyObject *__pyx_codeobj__325; + PyObject *__pyx_codeobj__326; + PyObject *__pyx_codeobj__328; + PyObject *__pyx_codeobj__330; + PyObject *__pyx_codeobj__332; + PyObject *__pyx_codeobj__333; + PyObject *__pyx_codeobj__334; + PyObject *__pyx_codeobj__336; + PyObject *__pyx_codeobj__337; + PyObject *__pyx_codeobj__338; + PyObject *__pyx_codeobj__339; + PyObject *__pyx_codeobj__340; + PyObject *__pyx_codeobj__341; + PyObject *__pyx_codeobj__342; + PyObject *__pyx_codeobj__344; + PyObject *__pyx_codeobj__345; + PyObject *__pyx_codeobj__346; + PyObject *__pyx_codeobj__347; + PyObject *__pyx_codeobj__348; + PyObject *__pyx_codeobj__349; + PyObject *__pyx_codeobj__350; + PyObject *__pyx_codeobj__351; + PyObject *__pyx_codeobj__352; + PyObject *__pyx_codeobj__353; + PyObject *__pyx_codeobj__354; + PyObject *__pyx_codeobj__355; + PyObject *__pyx_codeobj__356; + PyObject *__pyx_codeobj__357; + PyObject *__pyx_codeobj__358; + PyObject *__pyx_codeobj__359; + PyObject *__pyx_codeobj__360; + PyObject *__pyx_codeobj__361; + PyObject *__pyx_codeobj__362; + PyObject *__pyx_codeobj__363; + PyObject *__pyx_codeobj__364; + PyObject *__pyx_codeobj__365; + PyObject *__pyx_codeobj__366; + PyObject *__pyx_codeobj__367; + PyObject *__pyx_codeobj__368; + PyObject *__pyx_codeobj__369; + PyObject *__pyx_codeobj__370; + PyObject *__pyx_codeobj__371; + PyObject *__pyx_codeobj__372; + PyObject *__pyx_codeobj__373; + PyObject *__pyx_codeobj__374; + PyObject *__pyx_codeobj__375; + PyObject *__pyx_codeobj__376; + PyObject *__pyx_codeobj__377; + PyObject *__pyx_codeobj__378; + PyObject *__pyx_codeobj__379; + PyObject *__pyx_codeobj__380; + PyObject *__pyx_codeobj__381; + PyObject *__pyx_codeobj__382; + PyObject *__pyx_codeobj__383; + PyObject *__pyx_codeobj__384; + PyObject *__pyx_codeobj__385; + PyObject *__pyx_codeobj__386; + PyObject *__pyx_codeobj__387; + PyObject *__pyx_codeobj__388; + PyObject *__pyx_codeobj__389; + PyObject *__pyx_codeobj__390; + PyObject *__pyx_codeobj__391; + PyObject *__pyx_codeobj__392; + PyObject *__pyx_codeobj__393; + PyObject *__pyx_codeobj__394; + PyObject *__pyx_codeobj__395; + PyObject *__pyx_codeobj__396; + PyObject *__pyx_codeobj__397; + PyObject *__pyx_codeobj__398; + PyObject *__pyx_codeobj__400; + PyObject *__pyx_codeobj__401; + PyObject *__pyx_codeobj__402; + PyObject *__pyx_codeobj__403; + PyObject *__pyx_codeobj__404; + PyObject *__pyx_codeobj__405; + PyObject *__pyx_codeobj__406; + PyObject *__pyx_codeobj__407; + PyObject *__pyx_codeobj__408; + PyObject *__pyx_codeobj__409; + PyObject *__pyx_codeobj__410; + PyObject *__pyx_codeobj__411; + PyObject *__pyx_codeobj__413; + PyObject *__pyx_codeobj__415; + PyObject *__pyx_codeobj__416; + PyObject *__pyx_codeobj__418; + PyObject *__pyx_codeobj__419; + PyObject *__pyx_codeobj__420; + PyObject *__pyx_codeobj__421; + PyObject *__pyx_codeobj__422; + PyObject *__pyx_codeobj__423; + PyObject *__pyx_codeobj__424; + PyObject *__pyx_codeobj__425; + PyObject *__pyx_codeobj__427; + PyObject *__pyx_codeobj__429; + PyObject *__pyx_codeobj__431; + PyObject *__pyx_codeobj__433; + PyObject *__pyx_codeobj__435; + PyObject *__pyx_codeobj__437; + PyObject *__pyx_codeobj__438; + PyObject *__pyx_codeobj__440; + PyObject *__pyx_codeobj__442; + PyObject *__pyx_codeobj__444; + PyObject *__pyx_codeobj__445; + PyObject *__pyx_codeobj__446; + PyObject *__pyx_codeobj__447; + PyObject *__pyx_codeobj__448; + PyObject *__pyx_codeobj__450; + PyObject *__pyx_codeobj__452; + PyObject *__pyx_codeobj__453; + PyObject *__pyx_codeobj__454; + PyObject *__pyx_codeobj__455; + PyObject *__pyx_codeobj__456; + PyObject *__pyx_codeobj__457; + PyObject *__pyx_codeobj__459; + PyObject *__pyx_codeobj__460; + PyObject *__pyx_codeobj__461; + PyObject *__pyx_codeobj__462; + PyObject *__pyx_codeobj__463; + PyObject *__pyx_codeobj__464; + PyObject *__pyx_codeobj__465; + PyObject *__pyx_codeobj__466; + PyObject *__pyx_codeobj__467; + PyObject *__pyx_codeobj__469; + PyObject *__pyx_codeobj__471; + PyObject *__pyx_codeobj__472; + PyObject *__pyx_codeobj__473; + PyObject *__pyx_codeobj__474; + PyObject *__pyx_codeobj__475; + PyObject *__pyx_codeobj__477; + PyObject *__pyx_codeobj__479; + PyObject *__pyx_codeobj__481; + PyObject *__pyx_codeobj__483; + PyObject *__pyx_codeobj__484; + PyObject *__pyx_codeobj__485; + PyObject *__pyx_codeobj__487; + PyObject *__pyx_codeobj__488; + PyObject *__pyx_codeobj__489; + PyObject *__pyx_codeobj__490; + PyObject *__pyx_codeobj__492; + PyObject *__pyx_codeobj__493; + PyObject *__pyx_codeobj__494; + PyObject *__pyx_codeobj__495; + PyObject *__pyx_codeobj__496; + PyObject *__pyx_codeobj__498; + PyObject *__pyx_codeobj__499; + PyObject *__pyx_codeobj__500; + PyObject *__pyx_codeobj__501; + PyObject *__pyx_codeobj__502; } __pyx_mstate; #if CYTHON_USE_MODULE_STATE @@ -5595,8 +6271,8 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_kp_s__11); Py_CLEAR(clear_module_state->__pyx_kp_s__12); Py_CLEAR(clear_module_state->__pyx_n_s__240); - Py_CLEAR(clear_module_state->__pyx_n_s__307); Py_CLEAR(clear_module_state->__pyx_kp_u__43); + Py_CLEAR(clear_module_state->__pyx_n_s__503); Py_CLEAR(clear_module_state->__pyx_kp_s__6); Py_CLEAR(clear_module_state->__pyx_kp_s__7); Py_CLEAR(clear_module_state->__pyx_kp_s__9); @@ -5626,6 +6302,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_cline_in_traceback); Py_CLEAR(clear_module_state->__pyx_n_s_clone); Py_CLEAR(clear_module_state->__pyx_n_s_close); + Py_CLEAR(clear_module_state->__pyx_n_s_close_data); Py_CLEAR(clear_module_state->__pyx_n_s_collections); Py_CLEAR(clear_module_state->__pyx_n_s_column_stack); Py_CLEAR(clear_module_state->__pyx_n_s_columns); @@ -5670,6 +6347,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_groups); Py_CLEAR(clear_module_state->__pyx_n_s_help); Py_CLEAR(clear_module_state->__pyx_n_s_high); + Py_CLEAR(clear_module_state->__pyx_n_s_high_data); Py_CLEAR(clear_module_state->__pyx_n_s_holder); Py_CLEAR(clear_module_state->__pyx_n_s_i); Py_CLEAR(clear_module_state->__pyx_n_s_id); @@ -5708,6 +6386,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_lookback); Py_CLEAR(clear_module_state->__pyx_n_s_lookup); Py_CLEAR(clear_module_state->__pyx_n_s_low); + Py_CLEAR(clear_module_state->__pyx_n_s_low_data); Py_CLEAR(clear_module_state->__pyx_n_s_lower); Py_CLEAR(clear_module_state->__pyx_n_s_main); Py_CLEAR(clear_module_state->__pyx_n_s_math); @@ -5743,6 +6422,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_offsetonreverse); Py_CLEAR(clear_module_state->__pyx_n_s_open); Py_CLEAR(clear_module_state->__pyx_n_s_openInterest); + Py_CLEAR(clear_module_state->__pyx_n_s_open_data); Py_CLEAR(clear_module_state->__pyx_n_s_optIn); Py_CLEAR(clear_module_state->__pyx_n_s_opt_input); Py_CLEAR(clear_module_state->__pyx_n_s_opt_input_values); @@ -5792,6 +6472,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_penetration); Py_CLEAR(clear_module_state->__pyx_n_s_period); Py_CLEAR(clear_module_state->__pyx_n_s_periods); + Py_CLEAR(clear_module_state->__pyx_n_s_periods_data); Py_CLEAR(clear_module_state->__pyx_n_s_polars); Py_CLEAR(clear_module_state->__pyx_n_s_pop); Py_CLEAR(clear_module_state->__pyx_n_s_prepare); @@ -5807,7 +6488,10 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_rangetype); Py_CLEAR(clear_module_state->__pyx_n_s_real); Py_CLEAR(clear_module_state->__pyx_n_s_real0); + Py_CLEAR(clear_module_state->__pyx_n_s_real0_data); Py_CLEAR(clear_module_state->__pyx_n_s_real1); + Py_CLEAR(clear_module_state->__pyx_n_s_real1_data); + Py_CLEAR(clear_module_state->__pyx_n_s_real_data); Py_CLEAR(clear_module_state->__pyx_n_s_replace); Py_CLEAR(clear_module_state->__pyx_n_s_repr); Py_CLEAR(clear_module_state->__pyx_n_s_results); @@ -5845,6 +6529,164 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_startvalue); Py_CLEAR(clear_module_state->__pyx_n_s_str); Py_CLEAR(clear_module_state->__pyx_n_s_str2bytes); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ACOS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_AD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADOSC); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ADXR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_APO); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_AROON); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_AROONOSC); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ASIN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ATAN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ATR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_AVGPRICE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_BBANDS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_BETA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_BOP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CCI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL2CROWS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3BLACKCROWS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3INSIDE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3LINESTRIKE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3OUTSIDE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3STARSINSOUTH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDL3WHITESOLDIERS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLABANDONEDBABY); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLADVANCEBLOCK); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLBELTHOLD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLBREAKAWAY); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCLOSINGMARUBOZU); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCONCEALBABYSWALL); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLCOUNTERATTACK); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDARKCLOUDCOVER); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDOJI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDOJISTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLDRAGONFLYDOJI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLENGULFING); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLEVENINGDOJISTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLEVENINGSTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLGRAVESTONEDOJI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHAMMER); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHANGINGMAN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHARAMI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHARAMICROSS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIGHWAVE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIKKAKE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHIKKAKEMOD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLHOMINGPIGEON); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLIDENTICAL3CROWS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLINNECK); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLINVERTEDHAMMER); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLKICKING); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLKICKINGBYLENGTH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLADDERBOTTOM); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLONGLEGGEDDOJI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLLONGLINE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMARUBOZU); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMATCHINGLOW); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMATHOLD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMORNINGDOJISTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLMORNINGSTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLONNECK); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLPIERCING); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLRICKSHAWMAN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLRISEFALL3METHODS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSEPARATINGLINES); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSHOOTINGSTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSHORTLINE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSPINNINGTOP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSTALLEDPATTERN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLSTICKSANDWICH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTAKURI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTASUKIGAP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTHRUSTING); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLTRISTAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLUNIQUE3RIVER); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CDLXSIDEGAP3METHODS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CEIL); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CMO); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_CORREL); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_COS); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_COSH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_DEMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_DIV); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_DX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_EMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_EXP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_FLOOR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_DCPERIOD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_DCPHASE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_PHASOR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_SINE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_TRENDLINE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_HT_TRENDMODE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_KAMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_ANGLE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_INTERCEPT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LINEARREG_SLOPE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_LOG10); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACD); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACDEXT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MACDFIX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAVP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MAXINDEX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MEDPRICE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MFI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIDPOINT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIDPRICE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MIN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MININDEX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINMAX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINMAXINDEX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINUS_DI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MINUS_DM); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MOM); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_MULT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_NATR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_OBV); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_PLUS_DI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_PLUS_DM); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_PPO); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROC); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCP); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ROCR100); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_RSI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SAREXT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SIN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SINH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SQRT); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_STDDEV); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCHF); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_STOCHRSI); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SUB); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_SUM); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_T3); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TAN); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TANH); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TEMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRANGE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRIMA); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TRIX); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TSF); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_TYPPRICE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_ULTOSC); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_VAR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_WCLPRICE); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_WILLR); + Py_CLEAR(clear_module_state->__pyx_n_s_stream_WMA); Py_CLEAR(clear_module_state->__pyx_kp_s_stream__s); Py_CLEAR(clear_module_state->__pyx_n_s_super); Py_CLEAR(clear_module_state->__pyx_n_s_sys); @@ -5869,6 +6711,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_kp_s_talib__abstract_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_talib__common_pxi); Py_CLEAR(clear_module_state->__pyx_kp_s_talib__func_pxi); + Py_CLEAR(clear_module_state->__pyx_kp_s_talib__stream_pxi); Py_CLEAR(clear_module_state->__pyx_n_s_talib__ta_lib); Py_CLEAR(clear_module_state->__pyx_n_s_test); Py_CLEAR(clear_module_state->__pyx_n_s_threading); @@ -5890,6 +6733,7 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_n_s_version); Py_CLEAR(clear_module_state->__pyx_n_s_vfactor); Py_CLEAR(clear_module_state->__pyx_n_s_volume); + Py_CLEAR(clear_module_state->__pyx_n_s_volume_data); Py_CLEAR(clear_module_state->__pyx_n_s_xrange); Py_CLEAR(clear_module_state->__pyx_int_0); Py_CLEAR(clear_module_state->__pyx_int_1); @@ -6006,6 +6850,44 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_tuple__300); Py_CLEAR(clear_module_state->__pyx_tuple__302); Py_CLEAR(clear_module_state->__pyx_tuple__305); + Py_CLEAR(clear_module_state->__pyx_tuple__307); + Py_CLEAR(clear_module_state->__pyx_tuple__309); + Py_CLEAR(clear_module_state->__pyx_tuple__311); + Py_CLEAR(clear_module_state->__pyx_tuple__313); + Py_CLEAR(clear_module_state->__pyx_tuple__315); + Py_CLEAR(clear_module_state->__pyx_tuple__318); + Py_CLEAR(clear_module_state->__pyx_tuple__320); + Py_CLEAR(clear_module_state->__pyx_tuple__322); + Py_CLEAR(clear_module_state->__pyx_tuple__327); + Py_CLEAR(clear_module_state->__pyx_tuple__329); + Py_CLEAR(clear_module_state->__pyx_tuple__331); + Py_CLEAR(clear_module_state->__pyx_tuple__335); + Py_CLEAR(clear_module_state->__pyx_tuple__343); + Py_CLEAR(clear_module_state->__pyx_tuple__399); + Py_CLEAR(clear_module_state->__pyx_tuple__412); + Py_CLEAR(clear_module_state->__pyx_tuple__414); + Py_CLEAR(clear_module_state->__pyx_tuple__417); + Py_CLEAR(clear_module_state->__pyx_tuple__426); + Py_CLEAR(clear_module_state->__pyx_tuple__428); + Py_CLEAR(clear_module_state->__pyx_tuple__430); + Py_CLEAR(clear_module_state->__pyx_tuple__432); + Py_CLEAR(clear_module_state->__pyx_tuple__434); + Py_CLEAR(clear_module_state->__pyx_tuple__436); + Py_CLEAR(clear_module_state->__pyx_tuple__439); + Py_CLEAR(clear_module_state->__pyx_tuple__441); + Py_CLEAR(clear_module_state->__pyx_tuple__443); + Py_CLEAR(clear_module_state->__pyx_tuple__449); + Py_CLEAR(clear_module_state->__pyx_tuple__451); + Py_CLEAR(clear_module_state->__pyx_tuple__458); + Py_CLEAR(clear_module_state->__pyx_tuple__468); + Py_CLEAR(clear_module_state->__pyx_tuple__470); + Py_CLEAR(clear_module_state->__pyx_tuple__476); + Py_CLEAR(clear_module_state->__pyx_tuple__478); + Py_CLEAR(clear_module_state->__pyx_tuple__480); + Py_CLEAR(clear_module_state->__pyx_tuple__482); + Py_CLEAR(clear_module_state->__pyx_tuple__486); + Py_CLEAR(clear_module_state->__pyx_tuple__491); + Py_CLEAR(clear_module_state->__pyx_tuple__497); Py_CLEAR(clear_module_state->__pyx_codeobj__14); Py_CLEAR(clear_module_state->__pyx_codeobj__16); Py_CLEAR(clear_module_state->__pyx_codeobj__17); @@ -6211,6 +7093,164 @@ static int __pyx_m_clear(PyObject *m) { Py_CLEAR(clear_module_state->__pyx_codeobj__303); Py_CLEAR(clear_module_state->__pyx_codeobj__304); Py_CLEAR(clear_module_state->__pyx_codeobj__306); + Py_CLEAR(clear_module_state->__pyx_codeobj__308); + Py_CLEAR(clear_module_state->__pyx_codeobj__310); + Py_CLEAR(clear_module_state->__pyx_codeobj__312); + Py_CLEAR(clear_module_state->__pyx_codeobj__314); + Py_CLEAR(clear_module_state->__pyx_codeobj__316); + Py_CLEAR(clear_module_state->__pyx_codeobj__317); + Py_CLEAR(clear_module_state->__pyx_codeobj__319); + Py_CLEAR(clear_module_state->__pyx_codeobj__321); + Py_CLEAR(clear_module_state->__pyx_codeobj__323); + Py_CLEAR(clear_module_state->__pyx_codeobj__324); + Py_CLEAR(clear_module_state->__pyx_codeobj__325); + Py_CLEAR(clear_module_state->__pyx_codeobj__326); + Py_CLEAR(clear_module_state->__pyx_codeobj__328); + Py_CLEAR(clear_module_state->__pyx_codeobj__330); + Py_CLEAR(clear_module_state->__pyx_codeobj__332); + Py_CLEAR(clear_module_state->__pyx_codeobj__333); + Py_CLEAR(clear_module_state->__pyx_codeobj__334); + Py_CLEAR(clear_module_state->__pyx_codeobj__336); + Py_CLEAR(clear_module_state->__pyx_codeobj__337); + Py_CLEAR(clear_module_state->__pyx_codeobj__338); + Py_CLEAR(clear_module_state->__pyx_codeobj__339); + Py_CLEAR(clear_module_state->__pyx_codeobj__340); + Py_CLEAR(clear_module_state->__pyx_codeobj__341); + Py_CLEAR(clear_module_state->__pyx_codeobj__342); + Py_CLEAR(clear_module_state->__pyx_codeobj__344); + Py_CLEAR(clear_module_state->__pyx_codeobj__345); + Py_CLEAR(clear_module_state->__pyx_codeobj__346); + Py_CLEAR(clear_module_state->__pyx_codeobj__347); + Py_CLEAR(clear_module_state->__pyx_codeobj__348); + Py_CLEAR(clear_module_state->__pyx_codeobj__349); + Py_CLEAR(clear_module_state->__pyx_codeobj__350); + Py_CLEAR(clear_module_state->__pyx_codeobj__351); + Py_CLEAR(clear_module_state->__pyx_codeobj__352); + Py_CLEAR(clear_module_state->__pyx_codeobj__353); + Py_CLEAR(clear_module_state->__pyx_codeobj__354); + Py_CLEAR(clear_module_state->__pyx_codeobj__355); + Py_CLEAR(clear_module_state->__pyx_codeobj__356); + Py_CLEAR(clear_module_state->__pyx_codeobj__357); + Py_CLEAR(clear_module_state->__pyx_codeobj__358); + Py_CLEAR(clear_module_state->__pyx_codeobj__359); + Py_CLEAR(clear_module_state->__pyx_codeobj__360); + Py_CLEAR(clear_module_state->__pyx_codeobj__361); + Py_CLEAR(clear_module_state->__pyx_codeobj__362); + Py_CLEAR(clear_module_state->__pyx_codeobj__363); + Py_CLEAR(clear_module_state->__pyx_codeobj__364); + Py_CLEAR(clear_module_state->__pyx_codeobj__365); + Py_CLEAR(clear_module_state->__pyx_codeobj__366); + Py_CLEAR(clear_module_state->__pyx_codeobj__367); + Py_CLEAR(clear_module_state->__pyx_codeobj__368); + Py_CLEAR(clear_module_state->__pyx_codeobj__369); + Py_CLEAR(clear_module_state->__pyx_codeobj__370); + Py_CLEAR(clear_module_state->__pyx_codeobj__371); + Py_CLEAR(clear_module_state->__pyx_codeobj__372); + Py_CLEAR(clear_module_state->__pyx_codeobj__373); + Py_CLEAR(clear_module_state->__pyx_codeobj__374); + Py_CLEAR(clear_module_state->__pyx_codeobj__375); + Py_CLEAR(clear_module_state->__pyx_codeobj__376); + Py_CLEAR(clear_module_state->__pyx_codeobj__377); + Py_CLEAR(clear_module_state->__pyx_codeobj__378); + Py_CLEAR(clear_module_state->__pyx_codeobj__379); + Py_CLEAR(clear_module_state->__pyx_codeobj__380); + Py_CLEAR(clear_module_state->__pyx_codeobj__381); + Py_CLEAR(clear_module_state->__pyx_codeobj__382); + Py_CLEAR(clear_module_state->__pyx_codeobj__383); + Py_CLEAR(clear_module_state->__pyx_codeobj__384); + Py_CLEAR(clear_module_state->__pyx_codeobj__385); + Py_CLEAR(clear_module_state->__pyx_codeobj__386); + Py_CLEAR(clear_module_state->__pyx_codeobj__387); + Py_CLEAR(clear_module_state->__pyx_codeobj__388); + Py_CLEAR(clear_module_state->__pyx_codeobj__389); + Py_CLEAR(clear_module_state->__pyx_codeobj__390); + Py_CLEAR(clear_module_state->__pyx_codeobj__391); + Py_CLEAR(clear_module_state->__pyx_codeobj__392); + Py_CLEAR(clear_module_state->__pyx_codeobj__393); + Py_CLEAR(clear_module_state->__pyx_codeobj__394); + Py_CLEAR(clear_module_state->__pyx_codeobj__395); + Py_CLEAR(clear_module_state->__pyx_codeobj__396); + Py_CLEAR(clear_module_state->__pyx_codeobj__397); + Py_CLEAR(clear_module_state->__pyx_codeobj__398); + Py_CLEAR(clear_module_state->__pyx_codeobj__400); + Py_CLEAR(clear_module_state->__pyx_codeobj__401); + Py_CLEAR(clear_module_state->__pyx_codeobj__402); + Py_CLEAR(clear_module_state->__pyx_codeobj__403); + Py_CLEAR(clear_module_state->__pyx_codeobj__404); + Py_CLEAR(clear_module_state->__pyx_codeobj__405); + Py_CLEAR(clear_module_state->__pyx_codeobj__406); + Py_CLEAR(clear_module_state->__pyx_codeobj__407); + Py_CLEAR(clear_module_state->__pyx_codeobj__408); + Py_CLEAR(clear_module_state->__pyx_codeobj__409); + Py_CLEAR(clear_module_state->__pyx_codeobj__410); + Py_CLEAR(clear_module_state->__pyx_codeobj__411); + Py_CLEAR(clear_module_state->__pyx_codeobj__413); + Py_CLEAR(clear_module_state->__pyx_codeobj__415); + Py_CLEAR(clear_module_state->__pyx_codeobj__416); + Py_CLEAR(clear_module_state->__pyx_codeobj__418); + Py_CLEAR(clear_module_state->__pyx_codeobj__419); + Py_CLEAR(clear_module_state->__pyx_codeobj__420); + Py_CLEAR(clear_module_state->__pyx_codeobj__421); + Py_CLEAR(clear_module_state->__pyx_codeobj__422); + Py_CLEAR(clear_module_state->__pyx_codeobj__423); + Py_CLEAR(clear_module_state->__pyx_codeobj__424); + Py_CLEAR(clear_module_state->__pyx_codeobj__425); + Py_CLEAR(clear_module_state->__pyx_codeobj__427); + Py_CLEAR(clear_module_state->__pyx_codeobj__429); + Py_CLEAR(clear_module_state->__pyx_codeobj__431); + Py_CLEAR(clear_module_state->__pyx_codeobj__433); + Py_CLEAR(clear_module_state->__pyx_codeobj__435); + Py_CLEAR(clear_module_state->__pyx_codeobj__437); + Py_CLEAR(clear_module_state->__pyx_codeobj__438); + Py_CLEAR(clear_module_state->__pyx_codeobj__440); + Py_CLEAR(clear_module_state->__pyx_codeobj__442); + Py_CLEAR(clear_module_state->__pyx_codeobj__444); + Py_CLEAR(clear_module_state->__pyx_codeobj__445); + Py_CLEAR(clear_module_state->__pyx_codeobj__446); + Py_CLEAR(clear_module_state->__pyx_codeobj__447); + Py_CLEAR(clear_module_state->__pyx_codeobj__448); + Py_CLEAR(clear_module_state->__pyx_codeobj__450); + Py_CLEAR(clear_module_state->__pyx_codeobj__452); + Py_CLEAR(clear_module_state->__pyx_codeobj__453); + Py_CLEAR(clear_module_state->__pyx_codeobj__454); + Py_CLEAR(clear_module_state->__pyx_codeobj__455); + Py_CLEAR(clear_module_state->__pyx_codeobj__456); + Py_CLEAR(clear_module_state->__pyx_codeobj__457); + Py_CLEAR(clear_module_state->__pyx_codeobj__459); + Py_CLEAR(clear_module_state->__pyx_codeobj__460); + Py_CLEAR(clear_module_state->__pyx_codeobj__461); + Py_CLEAR(clear_module_state->__pyx_codeobj__462); + Py_CLEAR(clear_module_state->__pyx_codeobj__463); + Py_CLEAR(clear_module_state->__pyx_codeobj__464); + Py_CLEAR(clear_module_state->__pyx_codeobj__465); + Py_CLEAR(clear_module_state->__pyx_codeobj__466); + Py_CLEAR(clear_module_state->__pyx_codeobj__467); + Py_CLEAR(clear_module_state->__pyx_codeobj__469); + Py_CLEAR(clear_module_state->__pyx_codeobj__471); + Py_CLEAR(clear_module_state->__pyx_codeobj__472); + Py_CLEAR(clear_module_state->__pyx_codeobj__473); + Py_CLEAR(clear_module_state->__pyx_codeobj__474); + Py_CLEAR(clear_module_state->__pyx_codeobj__475); + Py_CLEAR(clear_module_state->__pyx_codeobj__477); + Py_CLEAR(clear_module_state->__pyx_codeobj__479); + Py_CLEAR(clear_module_state->__pyx_codeobj__481); + Py_CLEAR(clear_module_state->__pyx_codeobj__483); + Py_CLEAR(clear_module_state->__pyx_codeobj__484); + Py_CLEAR(clear_module_state->__pyx_codeobj__485); + Py_CLEAR(clear_module_state->__pyx_codeobj__487); + Py_CLEAR(clear_module_state->__pyx_codeobj__488); + Py_CLEAR(clear_module_state->__pyx_codeobj__489); + Py_CLEAR(clear_module_state->__pyx_codeobj__490); + Py_CLEAR(clear_module_state->__pyx_codeobj__492); + Py_CLEAR(clear_module_state->__pyx_codeobj__493); + Py_CLEAR(clear_module_state->__pyx_codeobj__494); + Py_CLEAR(clear_module_state->__pyx_codeobj__495); + Py_CLEAR(clear_module_state->__pyx_codeobj__496); + Py_CLEAR(clear_module_state->__pyx_codeobj__498); + Py_CLEAR(clear_module_state->__pyx_codeobj__499); + Py_CLEAR(clear_module_state->__pyx_codeobj__500); + Py_CLEAR(clear_module_state->__pyx_codeobj__501); + Py_CLEAR(clear_module_state->__pyx_codeobj__502); return 0; } #endif @@ -6714,8 +7754,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_kp_s__11); Py_VISIT(traverse_module_state->__pyx_kp_s__12); Py_VISIT(traverse_module_state->__pyx_n_s__240); - Py_VISIT(traverse_module_state->__pyx_n_s__307); Py_VISIT(traverse_module_state->__pyx_kp_u__43); + Py_VISIT(traverse_module_state->__pyx_n_s__503); Py_VISIT(traverse_module_state->__pyx_kp_s__6); Py_VISIT(traverse_module_state->__pyx_kp_s__7); Py_VISIT(traverse_module_state->__pyx_kp_s__9); @@ -6745,6 +7785,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_cline_in_traceback); Py_VISIT(traverse_module_state->__pyx_n_s_clone); Py_VISIT(traverse_module_state->__pyx_n_s_close); + Py_VISIT(traverse_module_state->__pyx_n_s_close_data); Py_VISIT(traverse_module_state->__pyx_n_s_collections); Py_VISIT(traverse_module_state->__pyx_n_s_column_stack); Py_VISIT(traverse_module_state->__pyx_n_s_columns); @@ -6789,6 +7830,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_groups); Py_VISIT(traverse_module_state->__pyx_n_s_help); Py_VISIT(traverse_module_state->__pyx_n_s_high); + Py_VISIT(traverse_module_state->__pyx_n_s_high_data); Py_VISIT(traverse_module_state->__pyx_n_s_holder); Py_VISIT(traverse_module_state->__pyx_n_s_i); Py_VISIT(traverse_module_state->__pyx_n_s_id); @@ -6827,6 +7869,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_lookback); Py_VISIT(traverse_module_state->__pyx_n_s_lookup); Py_VISIT(traverse_module_state->__pyx_n_s_low); + Py_VISIT(traverse_module_state->__pyx_n_s_low_data); Py_VISIT(traverse_module_state->__pyx_n_s_lower); Py_VISIT(traverse_module_state->__pyx_n_s_main); Py_VISIT(traverse_module_state->__pyx_n_s_math); @@ -6862,6 +7905,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_offsetonreverse); Py_VISIT(traverse_module_state->__pyx_n_s_open); Py_VISIT(traverse_module_state->__pyx_n_s_openInterest); + Py_VISIT(traverse_module_state->__pyx_n_s_open_data); Py_VISIT(traverse_module_state->__pyx_n_s_optIn); Py_VISIT(traverse_module_state->__pyx_n_s_opt_input); Py_VISIT(traverse_module_state->__pyx_n_s_opt_input_values); @@ -6911,6 +7955,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_penetration); Py_VISIT(traverse_module_state->__pyx_n_s_period); Py_VISIT(traverse_module_state->__pyx_n_s_periods); + Py_VISIT(traverse_module_state->__pyx_n_s_periods_data); Py_VISIT(traverse_module_state->__pyx_n_s_polars); Py_VISIT(traverse_module_state->__pyx_n_s_pop); Py_VISIT(traverse_module_state->__pyx_n_s_prepare); @@ -6926,7 +7971,10 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_rangetype); Py_VISIT(traverse_module_state->__pyx_n_s_real); Py_VISIT(traverse_module_state->__pyx_n_s_real0); + Py_VISIT(traverse_module_state->__pyx_n_s_real0_data); Py_VISIT(traverse_module_state->__pyx_n_s_real1); + Py_VISIT(traverse_module_state->__pyx_n_s_real1_data); + Py_VISIT(traverse_module_state->__pyx_n_s_real_data); Py_VISIT(traverse_module_state->__pyx_n_s_replace); Py_VISIT(traverse_module_state->__pyx_n_s_repr); Py_VISIT(traverse_module_state->__pyx_n_s_results); @@ -6964,6 +8012,164 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_startvalue); Py_VISIT(traverse_module_state->__pyx_n_s_str); Py_VISIT(traverse_module_state->__pyx_n_s_str2bytes); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ACOS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_AD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADOSC); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ADXR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_APO); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_AROON); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_AROONOSC); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ASIN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ATAN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ATR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_AVGPRICE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_BBANDS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_BETA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_BOP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CCI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL2CROWS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3BLACKCROWS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3INSIDE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3LINESTRIKE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3OUTSIDE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3STARSINSOUTH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDL3WHITESOLDIERS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLABANDONEDBABY); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLADVANCEBLOCK); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLBELTHOLD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLBREAKAWAY); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCLOSINGMARUBOZU); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCONCEALBABYSWALL); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLCOUNTERATTACK); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDARKCLOUDCOVER); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDOJI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDOJISTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLDRAGONFLYDOJI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLENGULFING); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLEVENINGDOJISTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLEVENINGSTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLGRAVESTONEDOJI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHAMMER); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHANGINGMAN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHARAMI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHARAMICROSS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIGHWAVE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIKKAKE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHIKKAKEMOD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLHOMINGPIGEON); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLIDENTICAL3CROWS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLINNECK); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLINVERTEDHAMMER); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLKICKING); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLKICKINGBYLENGTH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLADDERBOTTOM); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLONGLEGGEDDOJI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLLONGLINE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMARUBOZU); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMATCHINGLOW); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMATHOLD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMORNINGDOJISTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLMORNINGSTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLONNECK); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLPIERCING); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLRICKSHAWMAN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLRISEFALL3METHODS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSEPARATINGLINES); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSHOOTINGSTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSHORTLINE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSPINNINGTOP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSTALLEDPATTERN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLSTICKSANDWICH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTAKURI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTASUKIGAP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTHRUSTING); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLTRISTAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLUNIQUE3RIVER); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CDLXSIDEGAP3METHODS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CEIL); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CMO); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_CORREL); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_COS); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_COSH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_DEMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_DIV); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_DX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_EMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_EXP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_FLOOR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_DCPERIOD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_DCPHASE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_PHASOR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_SINE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_TRENDLINE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_HT_TRENDMODE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_KAMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_ANGLE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_INTERCEPT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LINEARREG_SLOPE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_LOG10); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACD); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACDEXT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MACDFIX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAVP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MAXINDEX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MEDPRICE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MFI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIDPOINT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIDPRICE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MIN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MININDEX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINMAX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINMAXINDEX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINUS_DI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MINUS_DM); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MOM); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_MULT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_NATR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_OBV); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_PLUS_DI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_PLUS_DM); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_PPO); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROC); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCP); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ROCR100); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_RSI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SAREXT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SIN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SINH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SQRT); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_STDDEV); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCHF); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_STOCHRSI); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SUB); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_SUM); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_T3); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TAN); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TANH); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TEMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRANGE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRIMA); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TRIX); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TSF); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_TYPPRICE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_ULTOSC); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_VAR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_WCLPRICE); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_WILLR); + Py_VISIT(traverse_module_state->__pyx_n_s_stream_WMA); Py_VISIT(traverse_module_state->__pyx_kp_s_stream__s); Py_VISIT(traverse_module_state->__pyx_n_s_super); Py_VISIT(traverse_module_state->__pyx_n_s_sys); @@ -6988,6 +8194,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_kp_s_talib__abstract_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_talib__common_pxi); Py_VISIT(traverse_module_state->__pyx_kp_s_talib__func_pxi); + Py_VISIT(traverse_module_state->__pyx_kp_s_talib__stream_pxi); Py_VISIT(traverse_module_state->__pyx_n_s_talib__ta_lib); Py_VISIT(traverse_module_state->__pyx_n_s_test); Py_VISIT(traverse_module_state->__pyx_n_s_threading); @@ -7009,6 +8216,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_n_s_version); Py_VISIT(traverse_module_state->__pyx_n_s_vfactor); Py_VISIT(traverse_module_state->__pyx_n_s_volume); + Py_VISIT(traverse_module_state->__pyx_n_s_volume_data); Py_VISIT(traverse_module_state->__pyx_n_s_xrange); Py_VISIT(traverse_module_state->__pyx_int_0); Py_VISIT(traverse_module_state->__pyx_int_1); @@ -7125,6 +8333,44 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_tuple__300); Py_VISIT(traverse_module_state->__pyx_tuple__302); Py_VISIT(traverse_module_state->__pyx_tuple__305); + Py_VISIT(traverse_module_state->__pyx_tuple__307); + Py_VISIT(traverse_module_state->__pyx_tuple__309); + Py_VISIT(traverse_module_state->__pyx_tuple__311); + Py_VISIT(traverse_module_state->__pyx_tuple__313); + Py_VISIT(traverse_module_state->__pyx_tuple__315); + Py_VISIT(traverse_module_state->__pyx_tuple__318); + Py_VISIT(traverse_module_state->__pyx_tuple__320); + Py_VISIT(traverse_module_state->__pyx_tuple__322); + Py_VISIT(traverse_module_state->__pyx_tuple__327); + Py_VISIT(traverse_module_state->__pyx_tuple__329); + Py_VISIT(traverse_module_state->__pyx_tuple__331); + Py_VISIT(traverse_module_state->__pyx_tuple__335); + Py_VISIT(traverse_module_state->__pyx_tuple__343); + Py_VISIT(traverse_module_state->__pyx_tuple__399); + Py_VISIT(traverse_module_state->__pyx_tuple__412); + Py_VISIT(traverse_module_state->__pyx_tuple__414); + Py_VISIT(traverse_module_state->__pyx_tuple__417); + Py_VISIT(traverse_module_state->__pyx_tuple__426); + Py_VISIT(traverse_module_state->__pyx_tuple__428); + Py_VISIT(traverse_module_state->__pyx_tuple__430); + Py_VISIT(traverse_module_state->__pyx_tuple__432); + Py_VISIT(traverse_module_state->__pyx_tuple__434); + Py_VISIT(traverse_module_state->__pyx_tuple__436); + Py_VISIT(traverse_module_state->__pyx_tuple__439); + Py_VISIT(traverse_module_state->__pyx_tuple__441); + Py_VISIT(traverse_module_state->__pyx_tuple__443); + Py_VISIT(traverse_module_state->__pyx_tuple__449); + Py_VISIT(traverse_module_state->__pyx_tuple__451); + Py_VISIT(traverse_module_state->__pyx_tuple__458); + Py_VISIT(traverse_module_state->__pyx_tuple__468); + Py_VISIT(traverse_module_state->__pyx_tuple__470); + Py_VISIT(traverse_module_state->__pyx_tuple__476); + Py_VISIT(traverse_module_state->__pyx_tuple__478); + Py_VISIT(traverse_module_state->__pyx_tuple__480); + Py_VISIT(traverse_module_state->__pyx_tuple__482); + Py_VISIT(traverse_module_state->__pyx_tuple__486); + Py_VISIT(traverse_module_state->__pyx_tuple__491); + Py_VISIT(traverse_module_state->__pyx_tuple__497); Py_VISIT(traverse_module_state->__pyx_codeobj__14); Py_VISIT(traverse_module_state->__pyx_codeobj__16); Py_VISIT(traverse_module_state->__pyx_codeobj__17); @@ -7330,6 +8576,164 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { Py_VISIT(traverse_module_state->__pyx_codeobj__303); Py_VISIT(traverse_module_state->__pyx_codeobj__304); Py_VISIT(traverse_module_state->__pyx_codeobj__306); + Py_VISIT(traverse_module_state->__pyx_codeobj__308); + Py_VISIT(traverse_module_state->__pyx_codeobj__310); + Py_VISIT(traverse_module_state->__pyx_codeobj__312); + Py_VISIT(traverse_module_state->__pyx_codeobj__314); + Py_VISIT(traverse_module_state->__pyx_codeobj__316); + Py_VISIT(traverse_module_state->__pyx_codeobj__317); + Py_VISIT(traverse_module_state->__pyx_codeobj__319); + Py_VISIT(traverse_module_state->__pyx_codeobj__321); + Py_VISIT(traverse_module_state->__pyx_codeobj__323); + Py_VISIT(traverse_module_state->__pyx_codeobj__324); + Py_VISIT(traverse_module_state->__pyx_codeobj__325); + Py_VISIT(traverse_module_state->__pyx_codeobj__326); + Py_VISIT(traverse_module_state->__pyx_codeobj__328); + Py_VISIT(traverse_module_state->__pyx_codeobj__330); + Py_VISIT(traverse_module_state->__pyx_codeobj__332); + Py_VISIT(traverse_module_state->__pyx_codeobj__333); + Py_VISIT(traverse_module_state->__pyx_codeobj__334); + Py_VISIT(traverse_module_state->__pyx_codeobj__336); + Py_VISIT(traverse_module_state->__pyx_codeobj__337); + Py_VISIT(traverse_module_state->__pyx_codeobj__338); + Py_VISIT(traverse_module_state->__pyx_codeobj__339); + Py_VISIT(traverse_module_state->__pyx_codeobj__340); + Py_VISIT(traverse_module_state->__pyx_codeobj__341); + Py_VISIT(traverse_module_state->__pyx_codeobj__342); + Py_VISIT(traverse_module_state->__pyx_codeobj__344); + Py_VISIT(traverse_module_state->__pyx_codeobj__345); + Py_VISIT(traverse_module_state->__pyx_codeobj__346); + Py_VISIT(traverse_module_state->__pyx_codeobj__347); + Py_VISIT(traverse_module_state->__pyx_codeobj__348); + Py_VISIT(traverse_module_state->__pyx_codeobj__349); + Py_VISIT(traverse_module_state->__pyx_codeobj__350); + Py_VISIT(traverse_module_state->__pyx_codeobj__351); + Py_VISIT(traverse_module_state->__pyx_codeobj__352); + Py_VISIT(traverse_module_state->__pyx_codeobj__353); + Py_VISIT(traverse_module_state->__pyx_codeobj__354); + Py_VISIT(traverse_module_state->__pyx_codeobj__355); + Py_VISIT(traverse_module_state->__pyx_codeobj__356); + Py_VISIT(traverse_module_state->__pyx_codeobj__357); + Py_VISIT(traverse_module_state->__pyx_codeobj__358); + Py_VISIT(traverse_module_state->__pyx_codeobj__359); + Py_VISIT(traverse_module_state->__pyx_codeobj__360); + Py_VISIT(traverse_module_state->__pyx_codeobj__361); + Py_VISIT(traverse_module_state->__pyx_codeobj__362); + Py_VISIT(traverse_module_state->__pyx_codeobj__363); + Py_VISIT(traverse_module_state->__pyx_codeobj__364); + Py_VISIT(traverse_module_state->__pyx_codeobj__365); + Py_VISIT(traverse_module_state->__pyx_codeobj__366); + Py_VISIT(traverse_module_state->__pyx_codeobj__367); + Py_VISIT(traverse_module_state->__pyx_codeobj__368); + Py_VISIT(traverse_module_state->__pyx_codeobj__369); + Py_VISIT(traverse_module_state->__pyx_codeobj__370); + Py_VISIT(traverse_module_state->__pyx_codeobj__371); + Py_VISIT(traverse_module_state->__pyx_codeobj__372); + Py_VISIT(traverse_module_state->__pyx_codeobj__373); + Py_VISIT(traverse_module_state->__pyx_codeobj__374); + Py_VISIT(traverse_module_state->__pyx_codeobj__375); + Py_VISIT(traverse_module_state->__pyx_codeobj__376); + Py_VISIT(traverse_module_state->__pyx_codeobj__377); + Py_VISIT(traverse_module_state->__pyx_codeobj__378); + Py_VISIT(traverse_module_state->__pyx_codeobj__379); + Py_VISIT(traverse_module_state->__pyx_codeobj__380); + Py_VISIT(traverse_module_state->__pyx_codeobj__381); + Py_VISIT(traverse_module_state->__pyx_codeobj__382); + Py_VISIT(traverse_module_state->__pyx_codeobj__383); + Py_VISIT(traverse_module_state->__pyx_codeobj__384); + Py_VISIT(traverse_module_state->__pyx_codeobj__385); + Py_VISIT(traverse_module_state->__pyx_codeobj__386); + Py_VISIT(traverse_module_state->__pyx_codeobj__387); + Py_VISIT(traverse_module_state->__pyx_codeobj__388); + Py_VISIT(traverse_module_state->__pyx_codeobj__389); + Py_VISIT(traverse_module_state->__pyx_codeobj__390); + Py_VISIT(traverse_module_state->__pyx_codeobj__391); + Py_VISIT(traverse_module_state->__pyx_codeobj__392); + Py_VISIT(traverse_module_state->__pyx_codeobj__393); + Py_VISIT(traverse_module_state->__pyx_codeobj__394); + Py_VISIT(traverse_module_state->__pyx_codeobj__395); + Py_VISIT(traverse_module_state->__pyx_codeobj__396); + Py_VISIT(traverse_module_state->__pyx_codeobj__397); + Py_VISIT(traverse_module_state->__pyx_codeobj__398); + Py_VISIT(traverse_module_state->__pyx_codeobj__400); + Py_VISIT(traverse_module_state->__pyx_codeobj__401); + Py_VISIT(traverse_module_state->__pyx_codeobj__402); + Py_VISIT(traverse_module_state->__pyx_codeobj__403); + Py_VISIT(traverse_module_state->__pyx_codeobj__404); + Py_VISIT(traverse_module_state->__pyx_codeobj__405); + Py_VISIT(traverse_module_state->__pyx_codeobj__406); + Py_VISIT(traverse_module_state->__pyx_codeobj__407); + Py_VISIT(traverse_module_state->__pyx_codeobj__408); + Py_VISIT(traverse_module_state->__pyx_codeobj__409); + Py_VISIT(traverse_module_state->__pyx_codeobj__410); + Py_VISIT(traverse_module_state->__pyx_codeobj__411); + Py_VISIT(traverse_module_state->__pyx_codeobj__413); + Py_VISIT(traverse_module_state->__pyx_codeobj__415); + Py_VISIT(traverse_module_state->__pyx_codeobj__416); + Py_VISIT(traverse_module_state->__pyx_codeobj__418); + Py_VISIT(traverse_module_state->__pyx_codeobj__419); + Py_VISIT(traverse_module_state->__pyx_codeobj__420); + Py_VISIT(traverse_module_state->__pyx_codeobj__421); + Py_VISIT(traverse_module_state->__pyx_codeobj__422); + Py_VISIT(traverse_module_state->__pyx_codeobj__423); + Py_VISIT(traverse_module_state->__pyx_codeobj__424); + Py_VISIT(traverse_module_state->__pyx_codeobj__425); + Py_VISIT(traverse_module_state->__pyx_codeobj__427); + Py_VISIT(traverse_module_state->__pyx_codeobj__429); + Py_VISIT(traverse_module_state->__pyx_codeobj__431); + Py_VISIT(traverse_module_state->__pyx_codeobj__433); + Py_VISIT(traverse_module_state->__pyx_codeobj__435); + Py_VISIT(traverse_module_state->__pyx_codeobj__437); + Py_VISIT(traverse_module_state->__pyx_codeobj__438); + Py_VISIT(traverse_module_state->__pyx_codeobj__440); + Py_VISIT(traverse_module_state->__pyx_codeobj__442); + Py_VISIT(traverse_module_state->__pyx_codeobj__444); + Py_VISIT(traverse_module_state->__pyx_codeobj__445); + Py_VISIT(traverse_module_state->__pyx_codeobj__446); + Py_VISIT(traverse_module_state->__pyx_codeobj__447); + Py_VISIT(traverse_module_state->__pyx_codeobj__448); + Py_VISIT(traverse_module_state->__pyx_codeobj__450); + Py_VISIT(traverse_module_state->__pyx_codeobj__452); + Py_VISIT(traverse_module_state->__pyx_codeobj__453); + Py_VISIT(traverse_module_state->__pyx_codeobj__454); + Py_VISIT(traverse_module_state->__pyx_codeobj__455); + Py_VISIT(traverse_module_state->__pyx_codeobj__456); + Py_VISIT(traverse_module_state->__pyx_codeobj__457); + Py_VISIT(traverse_module_state->__pyx_codeobj__459); + Py_VISIT(traverse_module_state->__pyx_codeobj__460); + Py_VISIT(traverse_module_state->__pyx_codeobj__461); + Py_VISIT(traverse_module_state->__pyx_codeobj__462); + Py_VISIT(traverse_module_state->__pyx_codeobj__463); + Py_VISIT(traverse_module_state->__pyx_codeobj__464); + Py_VISIT(traverse_module_state->__pyx_codeobj__465); + Py_VISIT(traverse_module_state->__pyx_codeobj__466); + Py_VISIT(traverse_module_state->__pyx_codeobj__467); + Py_VISIT(traverse_module_state->__pyx_codeobj__469); + Py_VISIT(traverse_module_state->__pyx_codeobj__471); + Py_VISIT(traverse_module_state->__pyx_codeobj__472); + Py_VISIT(traverse_module_state->__pyx_codeobj__473); + Py_VISIT(traverse_module_state->__pyx_codeobj__474); + Py_VISIT(traverse_module_state->__pyx_codeobj__475); + Py_VISIT(traverse_module_state->__pyx_codeobj__477); + Py_VISIT(traverse_module_state->__pyx_codeobj__479); + Py_VISIT(traverse_module_state->__pyx_codeobj__481); + Py_VISIT(traverse_module_state->__pyx_codeobj__483); + Py_VISIT(traverse_module_state->__pyx_codeobj__484); + Py_VISIT(traverse_module_state->__pyx_codeobj__485); + Py_VISIT(traverse_module_state->__pyx_codeobj__487); + Py_VISIT(traverse_module_state->__pyx_codeobj__488); + Py_VISIT(traverse_module_state->__pyx_codeobj__489); + Py_VISIT(traverse_module_state->__pyx_codeobj__490); + Py_VISIT(traverse_module_state->__pyx_codeobj__492); + Py_VISIT(traverse_module_state->__pyx_codeobj__493); + Py_VISIT(traverse_module_state->__pyx_codeobj__494); + Py_VISIT(traverse_module_state->__pyx_codeobj__495); + Py_VISIT(traverse_module_state->__pyx_codeobj__496); + Py_VISIT(traverse_module_state->__pyx_codeobj__498); + Py_VISIT(traverse_module_state->__pyx_codeobj__499); + Py_VISIT(traverse_module_state->__pyx_codeobj__500); + Py_VISIT(traverse_module_state->__pyx_codeobj__501); + Py_VISIT(traverse_module_state->__pyx_codeobj__502); return 0; } #endif @@ -7861,8 +9265,8 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_kp_s__11 __pyx_mstate_global->__pyx_kp_s__11 #define __pyx_kp_s__12 __pyx_mstate_global->__pyx_kp_s__12 #define __pyx_n_s__240 __pyx_mstate_global->__pyx_n_s__240 -#define __pyx_n_s__307 __pyx_mstate_global->__pyx_n_s__307 #define __pyx_kp_u__43 __pyx_mstate_global->__pyx_kp_u__43 +#define __pyx_n_s__503 __pyx_mstate_global->__pyx_n_s__503 #define __pyx_kp_s__6 __pyx_mstate_global->__pyx_kp_s__6 #define __pyx_kp_s__7 __pyx_mstate_global->__pyx_kp_s__7 #define __pyx_kp_s__9 __pyx_mstate_global->__pyx_kp_s__9 @@ -7892,6 +9296,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_cline_in_traceback __pyx_mstate_global->__pyx_n_s_cline_in_traceback #define __pyx_n_s_clone __pyx_mstate_global->__pyx_n_s_clone #define __pyx_n_s_close __pyx_mstate_global->__pyx_n_s_close +#define __pyx_n_s_close_data __pyx_mstate_global->__pyx_n_s_close_data #define __pyx_n_s_collections __pyx_mstate_global->__pyx_n_s_collections #define __pyx_n_s_column_stack __pyx_mstate_global->__pyx_n_s_column_stack #define __pyx_n_s_columns __pyx_mstate_global->__pyx_n_s_columns @@ -7936,6 +9341,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_groups __pyx_mstate_global->__pyx_n_s_groups #define __pyx_n_s_help __pyx_mstate_global->__pyx_n_s_help #define __pyx_n_s_high __pyx_mstate_global->__pyx_n_s_high +#define __pyx_n_s_high_data __pyx_mstate_global->__pyx_n_s_high_data #define __pyx_n_s_holder __pyx_mstate_global->__pyx_n_s_holder #define __pyx_n_s_i __pyx_mstate_global->__pyx_n_s_i #define __pyx_n_s_id __pyx_mstate_global->__pyx_n_s_id @@ -7974,6 +9380,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_lookback __pyx_mstate_global->__pyx_n_s_lookback #define __pyx_n_s_lookup __pyx_mstate_global->__pyx_n_s_lookup #define __pyx_n_s_low __pyx_mstate_global->__pyx_n_s_low +#define __pyx_n_s_low_data __pyx_mstate_global->__pyx_n_s_low_data #define __pyx_n_s_lower __pyx_mstate_global->__pyx_n_s_lower #define __pyx_n_s_main __pyx_mstate_global->__pyx_n_s_main #define __pyx_n_s_math __pyx_mstate_global->__pyx_n_s_math @@ -8009,6 +9416,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_offsetonreverse __pyx_mstate_global->__pyx_n_s_offsetonreverse #define __pyx_n_s_open __pyx_mstate_global->__pyx_n_s_open #define __pyx_n_s_openInterest __pyx_mstate_global->__pyx_n_s_openInterest +#define __pyx_n_s_open_data __pyx_mstate_global->__pyx_n_s_open_data #define __pyx_n_s_optIn __pyx_mstate_global->__pyx_n_s_optIn #define __pyx_n_s_opt_input __pyx_mstate_global->__pyx_n_s_opt_input #define __pyx_n_s_opt_input_values __pyx_mstate_global->__pyx_n_s_opt_input_values @@ -8058,6 +9466,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_penetration __pyx_mstate_global->__pyx_n_s_penetration #define __pyx_n_s_period __pyx_mstate_global->__pyx_n_s_period #define __pyx_n_s_periods __pyx_mstate_global->__pyx_n_s_periods +#define __pyx_n_s_periods_data __pyx_mstate_global->__pyx_n_s_periods_data #define __pyx_n_s_polars __pyx_mstate_global->__pyx_n_s_polars #define __pyx_n_s_pop __pyx_mstate_global->__pyx_n_s_pop #define __pyx_n_s_prepare __pyx_mstate_global->__pyx_n_s_prepare @@ -8073,7 +9482,10 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_rangetype __pyx_mstate_global->__pyx_n_s_rangetype #define __pyx_n_s_real __pyx_mstate_global->__pyx_n_s_real #define __pyx_n_s_real0 __pyx_mstate_global->__pyx_n_s_real0 +#define __pyx_n_s_real0_data __pyx_mstate_global->__pyx_n_s_real0_data #define __pyx_n_s_real1 __pyx_mstate_global->__pyx_n_s_real1 +#define __pyx_n_s_real1_data __pyx_mstate_global->__pyx_n_s_real1_data +#define __pyx_n_s_real_data __pyx_mstate_global->__pyx_n_s_real_data #define __pyx_n_s_replace __pyx_mstate_global->__pyx_n_s_replace #define __pyx_n_s_repr __pyx_mstate_global->__pyx_n_s_repr #define __pyx_n_s_results __pyx_mstate_global->__pyx_n_s_results @@ -8111,6 +9523,164 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_startvalue __pyx_mstate_global->__pyx_n_s_startvalue #define __pyx_n_s_str __pyx_mstate_global->__pyx_n_s_str #define __pyx_n_s_str2bytes __pyx_mstate_global->__pyx_n_s_str2bytes +#define __pyx_n_s_stream_ACOS __pyx_mstate_global->__pyx_n_s_stream_ACOS +#define __pyx_n_s_stream_AD __pyx_mstate_global->__pyx_n_s_stream_AD +#define __pyx_n_s_stream_ADD __pyx_mstate_global->__pyx_n_s_stream_ADD +#define __pyx_n_s_stream_ADOSC __pyx_mstate_global->__pyx_n_s_stream_ADOSC +#define __pyx_n_s_stream_ADX __pyx_mstate_global->__pyx_n_s_stream_ADX +#define __pyx_n_s_stream_ADXR __pyx_mstate_global->__pyx_n_s_stream_ADXR +#define __pyx_n_s_stream_APO __pyx_mstate_global->__pyx_n_s_stream_APO +#define __pyx_n_s_stream_AROON __pyx_mstate_global->__pyx_n_s_stream_AROON +#define __pyx_n_s_stream_AROONOSC __pyx_mstate_global->__pyx_n_s_stream_AROONOSC +#define __pyx_n_s_stream_ASIN __pyx_mstate_global->__pyx_n_s_stream_ASIN +#define __pyx_n_s_stream_ATAN __pyx_mstate_global->__pyx_n_s_stream_ATAN +#define __pyx_n_s_stream_ATR __pyx_mstate_global->__pyx_n_s_stream_ATR +#define __pyx_n_s_stream_AVGPRICE __pyx_mstate_global->__pyx_n_s_stream_AVGPRICE +#define __pyx_n_s_stream_BBANDS __pyx_mstate_global->__pyx_n_s_stream_BBANDS +#define __pyx_n_s_stream_BETA __pyx_mstate_global->__pyx_n_s_stream_BETA +#define __pyx_n_s_stream_BOP __pyx_mstate_global->__pyx_n_s_stream_BOP +#define __pyx_n_s_stream_CCI __pyx_mstate_global->__pyx_n_s_stream_CCI +#define __pyx_n_s_stream_CDL2CROWS __pyx_mstate_global->__pyx_n_s_stream_CDL2CROWS +#define __pyx_n_s_stream_CDL3BLACKCROWS __pyx_mstate_global->__pyx_n_s_stream_CDL3BLACKCROWS +#define __pyx_n_s_stream_CDL3INSIDE __pyx_mstate_global->__pyx_n_s_stream_CDL3INSIDE +#define __pyx_n_s_stream_CDL3LINESTRIKE __pyx_mstate_global->__pyx_n_s_stream_CDL3LINESTRIKE +#define __pyx_n_s_stream_CDL3OUTSIDE __pyx_mstate_global->__pyx_n_s_stream_CDL3OUTSIDE +#define __pyx_n_s_stream_CDL3STARSINSOUTH __pyx_mstate_global->__pyx_n_s_stream_CDL3STARSINSOUTH +#define __pyx_n_s_stream_CDL3WHITESOLDIERS __pyx_mstate_global->__pyx_n_s_stream_CDL3WHITESOLDIERS +#define __pyx_n_s_stream_CDLABANDONEDBABY __pyx_mstate_global->__pyx_n_s_stream_CDLABANDONEDBABY +#define __pyx_n_s_stream_CDLADVANCEBLOCK __pyx_mstate_global->__pyx_n_s_stream_CDLADVANCEBLOCK +#define __pyx_n_s_stream_CDLBELTHOLD __pyx_mstate_global->__pyx_n_s_stream_CDLBELTHOLD +#define __pyx_n_s_stream_CDLBREAKAWAY __pyx_mstate_global->__pyx_n_s_stream_CDLBREAKAWAY +#define __pyx_n_s_stream_CDLCLOSINGMARUBOZU __pyx_mstate_global->__pyx_n_s_stream_CDLCLOSINGMARUBOZU +#define __pyx_n_s_stream_CDLCONCEALBABYSWALL __pyx_mstate_global->__pyx_n_s_stream_CDLCONCEALBABYSWALL +#define __pyx_n_s_stream_CDLCOUNTERATTACK __pyx_mstate_global->__pyx_n_s_stream_CDLCOUNTERATTACK +#define __pyx_n_s_stream_CDLDARKCLOUDCOVER __pyx_mstate_global->__pyx_n_s_stream_CDLDARKCLOUDCOVER +#define __pyx_n_s_stream_CDLDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLDOJI +#define __pyx_n_s_stream_CDLDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLDOJISTAR +#define __pyx_n_s_stream_CDLDRAGONFLYDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLDRAGONFLYDOJI +#define __pyx_n_s_stream_CDLENGULFING __pyx_mstate_global->__pyx_n_s_stream_CDLENGULFING +#define __pyx_n_s_stream_CDLEVENINGDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLEVENINGDOJISTAR +#define __pyx_n_s_stream_CDLEVENINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLEVENINGSTAR +#define __pyx_n_s_stream_CDLGAPSIDESIDEWHITE __pyx_mstate_global->__pyx_n_s_stream_CDLGAPSIDESIDEWHITE +#define __pyx_n_s_stream_CDLGRAVESTONEDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLGRAVESTONEDOJI +#define __pyx_n_s_stream_CDLHAMMER __pyx_mstate_global->__pyx_n_s_stream_CDLHAMMER +#define __pyx_n_s_stream_CDLHANGINGMAN __pyx_mstate_global->__pyx_n_s_stream_CDLHANGINGMAN +#define __pyx_n_s_stream_CDLHARAMI __pyx_mstate_global->__pyx_n_s_stream_CDLHARAMI +#define __pyx_n_s_stream_CDLHARAMICROSS __pyx_mstate_global->__pyx_n_s_stream_CDLHARAMICROSS +#define __pyx_n_s_stream_CDLHIGHWAVE __pyx_mstate_global->__pyx_n_s_stream_CDLHIGHWAVE +#define __pyx_n_s_stream_CDLHIKKAKE __pyx_mstate_global->__pyx_n_s_stream_CDLHIKKAKE +#define __pyx_n_s_stream_CDLHIKKAKEMOD __pyx_mstate_global->__pyx_n_s_stream_CDLHIKKAKEMOD +#define __pyx_n_s_stream_CDLHOMINGPIGEON __pyx_mstate_global->__pyx_n_s_stream_CDLHOMINGPIGEON +#define __pyx_n_s_stream_CDLIDENTICAL3CROWS __pyx_mstate_global->__pyx_n_s_stream_CDLIDENTICAL3CROWS +#define __pyx_n_s_stream_CDLINNECK __pyx_mstate_global->__pyx_n_s_stream_CDLINNECK +#define __pyx_n_s_stream_CDLINVERTEDHAMMER __pyx_mstate_global->__pyx_n_s_stream_CDLINVERTEDHAMMER +#define __pyx_n_s_stream_CDLKICKING __pyx_mstate_global->__pyx_n_s_stream_CDLKICKING +#define __pyx_n_s_stream_CDLKICKINGBYLENGTH __pyx_mstate_global->__pyx_n_s_stream_CDLKICKINGBYLENGTH +#define __pyx_n_s_stream_CDLLADDERBOTTOM __pyx_mstate_global->__pyx_n_s_stream_CDLLADDERBOTTOM +#define __pyx_n_s_stream_CDLLONGLEGGEDDOJI __pyx_mstate_global->__pyx_n_s_stream_CDLLONGLEGGEDDOJI +#define __pyx_n_s_stream_CDLLONGLINE __pyx_mstate_global->__pyx_n_s_stream_CDLLONGLINE +#define __pyx_n_s_stream_CDLMARUBOZU __pyx_mstate_global->__pyx_n_s_stream_CDLMARUBOZU +#define __pyx_n_s_stream_CDLMATCHINGLOW __pyx_mstate_global->__pyx_n_s_stream_CDLMATCHINGLOW +#define __pyx_n_s_stream_CDLMATHOLD __pyx_mstate_global->__pyx_n_s_stream_CDLMATHOLD +#define __pyx_n_s_stream_CDLMORNINGDOJISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLMORNINGDOJISTAR +#define __pyx_n_s_stream_CDLMORNINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLMORNINGSTAR +#define __pyx_n_s_stream_CDLONNECK __pyx_mstate_global->__pyx_n_s_stream_CDLONNECK +#define __pyx_n_s_stream_CDLPIERCING __pyx_mstate_global->__pyx_n_s_stream_CDLPIERCING +#define __pyx_n_s_stream_CDLRICKSHAWMAN __pyx_mstate_global->__pyx_n_s_stream_CDLRICKSHAWMAN +#define __pyx_n_s_stream_CDLRISEFALL3METHODS __pyx_mstate_global->__pyx_n_s_stream_CDLRISEFALL3METHODS +#define __pyx_n_s_stream_CDLSEPARATINGLINES __pyx_mstate_global->__pyx_n_s_stream_CDLSEPARATINGLINES +#define __pyx_n_s_stream_CDLSHOOTINGSTAR __pyx_mstate_global->__pyx_n_s_stream_CDLSHOOTINGSTAR +#define __pyx_n_s_stream_CDLSHORTLINE __pyx_mstate_global->__pyx_n_s_stream_CDLSHORTLINE +#define __pyx_n_s_stream_CDLSPINNINGTOP __pyx_mstate_global->__pyx_n_s_stream_CDLSPINNINGTOP +#define __pyx_n_s_stream_CDLSTALLEDPATTERN __pyx_mstate_global->__pyx_n_s_stream_CDLSTALLEDPATTERN +#define __pyx_n_s_stream_CDLSTICKSANDWICH __pyx_mstate_global->__pyx_n_s_stream_CDLSTICKSANDWICH +#define __pyx_n_s_stream_CDLTAKURI __pyx_mstate_global->__pyx_n_s_stream_CDLTAKURI +#define __pyx_n_s_stream_CDLTASUKIGAP __pyx_mstate_global->__pyx_n_s_stream_CDLTASUKIGAP +#define __pyx_n_s_stream_CDLTHRUSTING __pyx_mstate_global->__pyx_n_s_stream_CDLTHRUSTING +#define __pyx_n_s_stream_CDLTRISTAR __pyx_mstate_global->__pyx_n_s_stream_CDLTRISTAR +#define __pyx_n_s_stream_CDLUNIQUE3RIVER __pyx_mstate_global->__pyx_n_s_stream_CDLUNIQUE3RIVER +#define __pyx_n_s_stream_CDLUPSIDEGAP2CROWS __pyx_mstate_global->__pyx_n_s_stream_CDLUPSIDEGAP2CROWS +#define __pyx_n_s_stream_CDLXSIDEGAP3METHODS __pyx_mstate_global->__pyx_n_s_stream_CDLXSIDEGAP3METHODS +#define __pyx_n_s_stream_CEIL __pyx_mstate_global->__pyx_n_s_stream_CEIL +#define __pyx_n_s_stream_CMO __pyx_mstate_global->__pyx_n_s_stream_CMO +#define __pyx_n_s_stream_CORREL __pyx_mstate_global->__pyx_n_s_stream_CORREL +#define __pyx_n_s_stream_COS __pyx_mstate_global->__pyx_n_s_stream_COS +#define __pyx_n_s_stream_COSH __pyx_mstate_global->__pyx_n_s_stream_COSH +#define __pyx_n_s_stream_DEMA __pyx_mstate_global->__pyx_n_s_stream_DEMA +#define __pyx_n_s_stream_DIV __pyx_mstate_global->__pyx_n_s_stream_DIV +#define __pyx_n_s_stream_DX __pyx_mstate_global->__pyx_n_s_stream_DX +#define __pyx_n_s_stream_EMA __pyx_mstate_global->__pyx_n_s_stream_EMA +#define __pyx_n_s_stream_EXP __pyx_mstate_global->__pyx_n_s_stream_EXP +#define __pyx_n_s_stream_FLOOR __pyx_mstate_global->__pyx_n_s_stream_FLOOR +#define __pyx_n_s_stream_HT_DCPERIOD __pyx_mstate_global->__pyx_n_s_stream_HT_DCPERIOD +#define __pyx_n_s_stream_HT_DCPHASE __pyx_mstate_global->__pyx_n_s_stream_HT_DCPHASE +#define __pyx_n_s_stream_HT_PHASOR __pyx_mstate_global->__pyx_n_s_stream_HT_PHASOR +#define __pyx_n_s_stream_HT_SINE __pyx_mstate_global->__pyx_n_s_stream_HT_SINE +#define __pyx_n_s_stream_HT_TRENDLINE __pyx_mstate_global->__pyx_n_s_stream_HT_TRENDLINE +#define __pyx_n_s_stream_HT_TRENDMODE __pyx_mstate_global->__pyx_n_s_stream_HT_TRENDMODE +#define __pyx_n_s_stream_KAMA __pyx_mstate_global->__pyx_n_s_stream_KAMA +#define __pyx_n_s_stream_LINEARREG __pyx_mstate_global->__pyx_n_s_stream_LINEARREG +#define __pyx_n_s_stream_LINEARREG_ANGLE __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_ANGLE +#define __pyx_n_s_stream_LINEARREG_INTERCEPT __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_INTERCEPT +#define __pyx_n_s_stream_LINEARREG_SLOPE __pyx_mstate_global->__pyx_n_s_stream_LINEARREG_SLOPE +#define __pyx_n_s_stream_LN __pyx_mstate_global->__pyx_n_s_stream_LN +#define __pyx_n_s_stream_LOG10 __pyx_mstate_global->__pyx_n_s_stream_LOG10 +#define __pyx_n_s_stream_MA __pyx_mstate_global->__pyx_n_s_stream_MA +#define __pyx_n_s_stream_MACD __pyx_mstate_global->__pyx_n_s_stream_MACD +#define __pyx_n_s_stream_MACDEXT __pyx_mstate_global->__pyx_n_s_stream_MACDEXT +#define __pyx_n_s_stream_MACDFIX __pyx_mstate_global->__pyx_n_s_stream_MACDFIX +#define __pyx_n_s_stream_MAMA __pyx_mstate_global->__pyx_n_s_stream_MAMA +#define __pyx_n_s_stream_MAVP __pyx_mstate_global->__pyx_n_s_stream_MAVP +#define __pyx_n_s_stream_MAX __pyx_mstate_global->__pyx_n_s_stream_MAX +#define __pyx_n_s_stream_MAXINDEX __pyx_mstate_global->__pyx_n_s_stream_MAXINDEX +#define __pyx_n_s_stream_MEDPRICE __pyx_mstate_global->__pyx_n_s_stream_MEDPRICE +#define __pyx_n_s_stream_MFI __pyx_mstate_global->__pyx_n_s_stream_MFI +#define __pyx_n_s_stream_MIDPOINT __pyx_mstate_global->__pyx_n_s_stream_MIDPOINT +#define __pyx_n_s_stream_MIDPRICE __pyx_mstate_global->__pyx_n_s_stream_MIDPRICE +#define __pyx_n_s_stream_MIN __pyx_mstate_global->__pyx_n_s_stream_MIN +#define __pyx_n_s_stream_MININDEX __pyx_mstate_global->__pyx_n_s_stream_MININDEX +#define __pyx_n_s_stream_MINMAX __pyx_mstate_global->__pyx_n_s_stream_MINMAX +#define __pyx_n_s_stream_MINMAXINDEX __pyx_mstate_global->__pyx_n_s_stream_MINMAXINDEX +#define __pyx_n_s_stream_MINUS_DI __pyx_mstate_global->__pyx_n_s_stream_MINUS_DI +#define __pyx_n_s_stream_MINUS_DM __pyx_mstate_global->__pyx_n_s_stream_MINUS_DM +#define __pyx_n_s_stream_MOM __pyx_mstate_global->__pyx_n_s_stream_MOM +#define __pyx_n_s_stream_MULT __pyx_mstate_global->__pyx_n_s_stream_MULT +#define __pyx_n_s_stream_NATR __pyx_mstate_global->__pyx_n_s_stream_NATR +#define __pyx_n_s_stream_OBV __pyx_mstate_global->__pyx_n_s_stream_OBV +#define __pyx_n_s_stream_PLUS_DI __pyx_mstate_global->__pyx_n_s_stream_PLUS_DI +#define __pyx_n_s_stream_PLUS_DM __pyx_mstate_global->__pyx_n_s_stream_PLUS_DM +#define __pyx_n_s_stream_PPO __pyx_mstate_global->__pyx_n_s_stream_PPO +#define __pyx_n_s_stream_ROC __pyx_mstate_global->__pyx_n_s_stream_ROC +#define __pyx_n_s_stream_ROCP __pyx_mstate_global->__pyx_n_s_stream_ROCP +#define __pyx_n_s_stream_ROCR __pyx_mstate_global->__pyx_n_s_stream_ROCR +#define __pyx_n_s_stream_ROCR100 __pyx_mstate_global->__pyx_n_s_stream_ROCR100 +#define __pyx_n_s_stream_RSI __pyx_mstate_global->__pyx_n_s_stream_RSI +#define __pyx_n_s_stream_SAR __pyx_mstate_global->__pyx_n_s_stream_SAR +#define __pyx_n_s_stream_SAREXT __pyx_mstate_global->__pyx_n_s_stream_SAREXT +#define __pyx_n_s_stream_SIN __pyx_mstate_global->__pyx_n_s_stream_SIN +#define __pyx_n_s_stream_SINH __pyx_mstate_global->__pyx_n_s_stream_SINH +#define __pyx_n_s_stream_SMA __pyx_mstate_global->__pyx_n_s_stream_SMA +#define __pyx_n_s_stream_SQRT __pyx_mstate_global->__pyx_n_s_stream_SQRT +#define __pyx_n_s_stream_STDDEV __pyx_mstate_global->__pyx_n_s_stream_STDDEV +#define __pyx_n_s_stream_STOCH __pyx_mstate_global->__pyx_n_s_stream_STOCH +#define __pyx_n_s_stream_STOCHF __pyx_mstate_global->__pyx_n_s_stream_STOCHF +#define __pyx_n_s_stream_STOCHRSI __pyx_mstate_global->__pyx_n_s_stream_STOCHRSI +#define __pyx_n_s_stream_SUB __pyx_mstate_global->__pyx_n_s_stream_SUB +#define __pyx_n_s_stream_SUM __pyx_mstate_global->__pyx_n_s_stream_SUM +#define __pyx_n_s_stream_T3 __pyx_mstate_global->__pyx_n_s_stream_T3 +#define __pyx_n_s_stream_TAN __pyx_mstate_global->__pyx_n_s_stream_TAN +#define __pyx_n_s_stream_TANH __pyx_mstate_global->__pyx_n_s_stream_TANH +#define __pyx_n_s_stream_TEMA __pyx_mstate_global->__pyx_n_s_stream_TEMA +#define __pyx_n_s_stream_TRANGE __pyx_mstate_global->__pyx_n_s_stream_TRANGE +#define __pyx_n_s_stream_TRIMA __pyx_mstate_global->__pyx_n_s_stream_TRIMA +#define __pyx_n_s_stream_TRIX __pyx_mstate_global->__pyx_n_s_stream_TRIX +#define __pyx_n_s_stream_TSF __pyx_mstate_global->__pyx_n_s_stream_TSF +#define __pyx_n_s_stream_TYPPRICE __pyx_mstate_global->__pyx_n_s_stream_TYPPRICE +#define __pyx_n_s_stream_ULTOSC __pyx_mstate_global->__pyx_n_s_stream_ULTOSC +#define __pyx_n_s_stream_VAR __pyx_mstate_global->__pyx_n_s_stream_VAR +#define __pyx_n_s_stream_WCLPRICE __pyx_mstate_global->__pyx_n_s_stream_WCLPRICE +#define __pyx_n_s_stream_WILLR __pyx_mstate_global->__pyx_n_s_stream_WILLR +#define __pyx_n_s_stream_WMA __pyx_mstate_global->__pyx_n_s_stream_WMA #define __pyx_kp_s_stream__s __pyx_mstate_global->__pyx_kp_s_stream__s #define __pyx_n_s_super __pyx_mstate_global->__pyx_n_s_super #define __pyx_n_s_sys __pyx_mstate_global->__pyx_n_s_sys @@ -8135,6 +9705,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_kp_s_talib__abstract_pxi __pyx_mstate_global->__pyx_kp_s_talib__abstract_pxi #define __pyx_kp_s_talib__common_pxi __pyx_mstate_global->__pyx_kp_s_talib__common_pxi #define __pyx_kp_s_talib__func_pxi __pyx_mstate_global->__pyx_kp_s_talib__func_pxi +#define __pyx_kp_s_talib__stream_pxi __pyx_mstate_global->__pyx_kp_s_talib__stream_pxi #define __pyx_n_s_talib__ta_lib __pyx_mstate_global->__pyx_n_s_talib__ta_lib #define __pyx_n_s_test __pyx_mstate_global->__pyx_n_s_test #define __pyx_n_s_threading __pyx_mstate_global->__pyx_n_s_threading @@ -8156,6 +9727,7 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_n_s_version __pyx_mstate_global->__pyx_n_s_version #define __pyx_n_s_vfactor __pyx_mstate_global->__pyx_n_s_vfactor #define __pyx_n_s_volume __pyx_mstate_global->__pyx_n_s_volume +#define __pyx_n_s_volume_data __pyx_mstate_global->__pyx_n_s_volume_data #define __pyx_n_s_xrange __pyx_mstate_global->__pyx_n_s_xrange #define __pyx_int_0 __pyx_mstate_global->__pyx_int_0 #define __pyx_int_1 __pyx_mstate_global->__pyx_int_1 @@ -8272,6 +9844,44 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_tuple__300 __pyx_mstate_global->__pyx_tuple__300 #define __pyx_tuple__302 __pyx_mstate_global->__pyx_tuple__302 #define __pyx_tuple__305 __pyx_mstate_global->__pyx_tuple__305 +#define __pyx_tuple__307 __pyx_mstate_global->__pyx_tuple__307 +#define __pyx_tuple__309 __pyx_mstate_global->__pyx_tuple__309 +#define __pyx_tuple__311 __pyx_mstate_global->__pyx_tuple__311 +#define __pyx_tuple__313 __pyx_mstate_global->__pyx_tuple__313 +#define __pyx_tuple__315 __pyx_mstate_global->__pyx_tuple__315 +#define __pyx_tuple__318 __pyx_mstate_global->__pyx_tuple__318 +#define __pyx_tuple__320 __pyx_mstate_global->__pyx_tuple__320 +#define __pyx_tuple__322 __pyx_mstate_global->__pyx_tuple__322 +#define __pyx_tuple__327 __pyx_mstate_global->__pyx_tuple__327 +#define __pyx_tuple__329 __pyx_mstate_global->__pyx_tuple__329 +#define __pyx_tuple__331 __pyx_mstate_global->__pyx_tuple__331 +#define __pyx_tuple__335 __pyx_mstate_global->__pyx_tuple__335 +#define __pyx_tuple__343 __pyx_mstate_global->__pyx_tuple__343 +#define __pyx_tuple__399 __pyx_mstate_global->__pyx_tuple__399 +#define __pyx_tuple__412 __pyx_mstate_global->__pyx_tuple__412 +#define __pyx_tuple__414 __pyx_mstate_global->__pyx_tuple__414 +#define __pyx_tuple__417 __pyx_mstate_global->__pyx_tuple__417 +#define __pyx_tuple__426 __pyx_mstate_global->__pyx_tuple__426 +#define __pyx_tuple__428 __pyx_mstate_global->__pyx_tuple__428 +#define __pyx_tuple__430 __pyx_mstate_global->__pyx_tuple__430 +#define __pyx_tuple__432 __pyx_mstate_global->__pyx_tuple__432 +#define __pyx_tuple__434 __pyx_mstate_global->__pyx_tuple__434 +#define __pyx_tuple__436 __pyx_mstate_global->__pyx_tuple__436 +#define __pyx_tuple__439 __pyx_mstate_global->__pyx_tuple__439 +#define __pyx_tuple__441 __pyx_mstate_global->__pyx_tuple__441 +#define __pyx_tuple__443 __pyx_mstate_global->__pyx_tuple__443 +#define __pyx_tuple__449 __pyx_mstate_global->__pyx_tuple__449 +#define __pyx_tuple__451 __pyx_mstate_global->__pyx_tuple__451 +#define __pyx_tuple__458 __pyx_mstate_global->__pyx_tuple__458 +#define __pyx_tuple__468 __pyx_mstate_global->__pyx_tuple__468 +#define __pyx_tuple__470 __pyx_mstate_global->__pyx_tuple__470 +#define __pyx_tuple__476 __pyx_mstate_global->__pyx_tuple__476 +#define __pyx_tuple__478 __pyx_mstate_global->__pyx_tuple__478 +#define __pyx_tuple__480 __pyx_mstate_global->__pyx_tuple__480 +#define __pyx_tuple__482 __pyx_mstate_global->__pyx_tuple__482 +#define __pyx_tuple__486 __pyx_mstate_global->__pyx_tuple__486 +#define __pyx_tuple__491 __pyx_mstate_global->__pyx_tuple__491 +#define __pyx_tuple__497 __pyx_mstate_global->__pyx_tuple__497 #define __pyx_codeobj__14 __pyx_mstate_global->__pyx_codeobj__14 #define __pyx_codeobj__16 __pyx_mstate_global->__pyx_codeobj__16 #define __pyx_codeobj__17 __pyx_mstate_global->__pyx_codeobj__17 @@ -8477,6 +10087,164 @@ static int __pyx_m_traverse(PyObject *m, visitproc visit, void *arg) { #define __pyx_codeobj__303 __pyx_mstate_global->__pyx_codeobj__303 #define __pyx_codeobj__304 __pyx_mstate_global->__pyx_codeobj__304 #define __pyx_codeobj__306 __pyx_mstate_global->__pyx_codeobj__306 +#define __pyx_codeobj__308 __pyx_mstate_global->__pyx_codeobj__308 +#define __pyx_codeobj__310 __pyx_mstate_global->__pyx_codeobj__310 +#define __pyx_codeobj__312 __pyx_mstate_global->__pyx_codeobj__312 +#define __pyx_codeobj__314 __pyx_mstate_global->__pyx_codeobj__314 +#define __pyx_codeobj__316 __pyx_mstate_global->__pyx_codeobj__316 +#define __pyx_codeobj__317 __pyx_mstate_global->__pyx_codeobj__317 +#define __pyx_codeobj__319 __pyx_mstate_global->__pyx_codeobj__319 +#define __pyx_codeobj__321 __pyx_mstate_global->__pyx_codeobj__321 +#define __pyx_codeobj__323 __pyx_mstate_global->__pyx_codeobj__323 +#define __pyx_codeobj__324 __pyx_mstate_global->__pyx_codeobj__324 +#define __pyx_codeobj__325 __pyx_mstate_global->__pyx_codeobj__325 +#define __pyx_codeobj__326 __pyx_mstate_global->__pyx_codeobj__326 +#define __pyx_codeobj__328 __pyx_mstate_global->__pyx_codeobj__328 +#define __pyx_codeobj__330 __pyx_mstate_global->__pyx_codeobj__330 +#define __pyx_codeobj__332 __pyx_mstate_global->__pyx_codeobj__332 +#define __pyx_codeobj__333 __pyx_mstate_global->__pyx_codeobj__333 +#define __pyx_codeobj__334 __pyx_mstate_global->__pyx_codeobj__334 +#define __pyx_codeobj__336 __pyx_mstate_global->__pyx_codeobj__336 +#define __pyx_codeobj__337 __pyx_mstate_global->__pyx_codeobj__337 +#define __pyx_codeobj__338 __pyx_mstate_global->__pyx_codeobj__338 +#define __pyx_codeobj__339 __pyx_mstate_global->__pyx_codeobj__339 +#define __pyx_codeobj__340 __pyx_mstate_global->__pyx_codeobj__340 +#define __pyx_codeobj__341 __pyx_mstate_global->__pyx_codeobj__341 +#define __pyx_codeobj__342 __pyx_mstate_global->__pyx_codeobj__342 +#define __pyx_codeobj__344 __pyx_mstate_global->__pyx_codeobj__344 +#define __pyx_codeobj__345 __pyx_mstate_global->__pyx_codeobj__345 +#define __pyx_codeobj__346 __pyx_mstate_global->__pyx_codeobj__346 +#define __pyx_codeobj__347 __pyx_mstate_global->__pyx_codeobj__347 +#define __pyx_codeobj__348 __pyx_mstate_global->__pyx_codeobj__348 +#define __pyx_codeobj__349 __pyx_mstate_global->__pyx_codeobj__349 +#define __pyx_codeobj__350 __pyx_mstate_global->__pyx_codeobj__350 +#define __pyx_codeobj__351 __pyx_mstate_global->__pyx_codeobj__351 +#define __pyx_codeobj__352 __pyx_mstate_global->__pyx_codeobj__352 +#define __pyx_codeobj__353 __pyx_mstate_global->__pyx_codeobj__353 +#define __pyx_codeobj__354 __pyx_mstate_global->__pyx_codeobj__354 +#define __pyx_codeobj__355 __pyx_mstate_global->__pyx_codeobj__355 +#define __pyx_codeobj__356 __pyx_mstate_global->__pyx_codeobj__356 +#define __pyx_codeobj__357 __pyx_mstate_global->__pyx_codeobj__357 +#define __pyx_codeobj__358 __pyx_mstate_global->__pyx_codeobj__358 +#define __pyx_codeobj__359 __pyx_mstate_global->__pyx_codeobj__359 +#define __pyx_codeobj__360 __pyx_mstate_global->__pyx_codeobj__360 +#define __pyx_codeobj__361 __pyx_mstate_global->__pyx_codeobj__361 +#define __pyx_codeobj__362 __pyx_mstate_global->__pyx_codeobj__362 +#define __pyx_codeobj__363 __pyx_mstate_global->__pyx_codeobj__363 +#define __pyx_codeobj__364 __pyx_mstate_global->__pyx_codeobj__364 +#define __pyx_codeobj__365 __pyx_mstate_global->__pyx_codeobj__365 +#define __pyx_codeobj__366 __pyx_mstate_global->__pyx_codeobj__366 +#define __pyx_codeobj__367 __pyx_mstate_global->__pyx_codeobj__367 +#define __pyx_codeobj__368 __pyx_mstate_global->__pyx_codeobj__368 +#define __pyx_codeobj__369 __pyx_mstate_global->__pyx_codeobj__369 +#define __pyx_codeobj__370 __pyx_mstate_global->__pyx_codeobj__370 +#define __pyx_codeobj__371 __pyx_mstate_global->__pyx_codeobj__371 +#define __pyx_codeobj__372 __pyx_mstate_global->__pyx_codeobj__372 +#define __pyx_codeobj__373 __pyx_mstate_global->__pyx_codeobj__373 +#define __pyx_codeobj__374 __pyx_mstate_global->__pyx_codeobj__374 +#define __pyx_codeobj__375 __pyx_mstate_global->__pyx_codeobj__375 +#define __pyx_codeobj__376 __pyx_mstate_global->__pyx_codeobj__376 +#define __pyx_codeobj__377 __pyx_mstate_global->__pyx_codeobj__377 +#define __pyx_codeobj__378 __pyx_mstate_global->__pyx_codeobj__378 +#define __pyx_codeobj__379 __pyx_mstate_global->__pyx_codeobj__379 +#define __pyx_codeobj__380 __pyx_mstate_global->__pyx_codeobj__380 +#define __pyx_codeobj__381 __pyx_mstate_global->__pyx_codeobj__381 +#define __pyx_codeobj__382 __pyx_mstate_global->__pyx_codeobj__382 +#define __pyx_codeobj__383 __pyx_mstate_global->__pyx_codeobj__383 +#define __pyx_codeobj__384 __pyx_mstate_global->__pyx_codeobj__384 +#define __pyx_codeobj__385 __pyx_mstate_global->__pyx_codeobj__385 +#define __pyx_codeobj__386 __pyx_mstate_global->__pyx_codeobj__386 +#define __pyx_codeobj__387 __pyx_mstate_global->__pyx_codeobj__387 +#define __pyx_codeobj__388 __pyx_mstate_global->__pyx_codeobj__388 +#define __pyx_codeobj__389 __pyx_mstate_global->__pyx_codeobj__389 +#define __pyx_codeobj__390 __pyx_mstate_global->__pyx_codeobj__390 +#define __pyx_codeobj__391 __pyx_mstate_global->__pyx_codeobj__391 +#define __pyx_codeobj__392 __pyx_mstate_global->__pyx_codeobj__392 +#define __pyx_codeobj__393 __pyx_mstate_global->__pyx_codeobj__393 +#define __pyx_codeobj__394 __pyx_mstate_global->__pyx_codeobj__394 +#define __pyx_codeobj__395 __pyx_mstate_global->__pyx_codeobj__395 +#define __pyx_codeobj__396 __pyx_mstate_global->__pyx_codeobj__396 +#define __pyx_codeobj__397 __pyx_mstate_global->__pyx_codeobj__397 +#define __pyx_codeobj__398 __pyx_mstate_global->__pyx_codeobj__398 +#define __pyx_codeobj__400 __pyx_mstate_global->__pyx_codeobj__400 +#define __pyx_codeobj__401 __pyx_mstate_global->__pyx_codeobj__401 +#define __pyx_codeobj__402 __pyx_mstate_global->__pyx_codeobj__402 +#define __pyx_codeobj__403 __pyx_mstate_global->__pyx_codeobj__403 +#define __pyx_codeobj__404 __pyx_mstate_global->__pyx_codeobj__404 +#define __pyx_codeobj__405 __pyx_mstate_global->__pyx_codeobj__405 +#define __pyx_codeobj__406 __pyx_mstate_global->__pyx_codeobj__406 +#define __pyx_codeobj__407 __pyx_mstate_global->__pyx_codeobj__407 +#define __pyx_codeobj__408 __pyx_mstate_global->__pyx_codeobj__408 +#define __pyx_codeobj__409 __pyx_mstate_global->__pyx_codeobj__409 +#define __pyx_codeobj__410 __pyx_mstate_global->__pyx_codeobj__410 +#define __pyx_codeobj__411 __pyx_mstate_global->__pyx_codeobj__411 +#define __pyx_codeobj__413 __pyx_mstate_global->__pyx_codeobj__413 +#define __pyx_codeobj__415 __pyx_mstate_global->__pyx_codeobj__415 +#define __pyx_codeobj__416 __pyx_mstate_global->__pyx_codeobj__416 +#define __pyx_codeobj__418 __pyx_mstate_global->__pyx_codeobj__418 +#define __pyx_codeobj__419 __pyx_mstate_global->__pyx_codeobj__419 +#define __pyx_codeobj__420 __pyx_mstate_global->__pyx_codeobj__420 +#define __pyx_codeobj__421 __pyx_mstate_global->__pyx_codeobj__421 +#define __pyx_codeobj__422 __pyx_mstate_global->__pyx_codeobj__422 +#define __pyx_codeobj__423 __pyx_mstate_global->__pyx_codeobj__423 +#define __pyx_codeobj__424 __pyx_mstate_global->__pyx_codeobj__424 +#define __pyx_codeobj__425 __pyx_mstate_global->__pyx_codeobj__425 +#define __pyx_codeobj__427 __pyx_mstate_global->__pyx_codeobj__427 +#define __pyx_codeobj__429 __pyx_mstate_global->__pyx_codeobj__429 +#define __pyx_codeobj__431 __pyx_mstate_global->__pyx_codeobj__431 +#define __pyx_codeobj__433 __pyx_mstate_global->__pyx_codeobj__433 +#define __pyx_codeobj__435 __pyx_mstate_global->__pyx_codeobj__435 +#define __pyx_codeobj__437 __pyx_mstate_global->__pyx_codeobj__437 +#define __pyx_codeobj__438 __pyx_mstate_global->__pyx_codeobj__438 +#define __pyx_codeobj__440 __pyx_mstate_global->__pyx_codeobj__440 +#define __pyx_codeobj__442 __pyx_mstate_global->__pyx_codeobj__442 +#define __pyx_codeobj__444 __pyx_mstate_global->__pyx_codeobj__444 +#define __pyx_codeobj__445 __pyx_mstate_global->__pyx_codeobj__445 +#define __pyx_codeobj__446 __pyx_mstate_global->__pyx_codeobj__446 +#define __pyx_codeobj__447 __pyx_mstate_global->__pyx_codeobj__447 +#define __pyx_codeobj__448 __pyx_mstate_global->__pyx_codeobj__448 +#define __pyx_codeobj__450 __pyx_mstate_global->__pyx_codeobj__450 +#define __pyx_codeobj__452 __pyx_mstate_global->__pyx_codeobj__452 +#define __pyx_codeobj__453 __pyx_mstate_global->__pyx_codeobj__453 +#define __pyx_codeobj__454 __pyx_mstate_global->__pyx_codeobj__454 +#define __pyx_codeobj__455 __pyx_mstate_global->__pyx_codeobj__455 +#define __pyx_codeobj__456 __pyx_mstate_global->__pyx_codeobj__456 +#define __pyx_codeobj__457 __pyx_mstate_global->__pyx_codeobj__457 +#define __pyx_codeobj__459 __pyx_mstate_global->__pyx_codeobj__459 +#define __pyx_codeobj__460 __pyx_mstate_global->__pyx_codeobj__460 +#define __pyx_codeobj__461 __pyx_mstate_global->__pyx_codeobj__461 +#define __pyx_codeobj__462 __pyx_mstate_global->__pyx_codeobj__462 +#define __pyx_codeobj__463 __pyx_mstate_global->__pyx_codeobj__463 +#define __pyx_codeobj__464 __pyx_mstate_global->__pyx_codeobj__464 +#define __pyx_codeobj__465 __pyx_mstate_global->__pyx_codeobj__465 +#define __pyx_codeobj__466 __pyx_mstate_global->__pyx_codeobj__466 +#define __pyx_codeobj__467 __pyx_mstate_global->__pyx_codeobj__467 +#define __pyx_codeobj__469 __pyx_mstate_global->__pyx_codeobj__469 +#define __pyx_codeobj__471 __pyx_mstate_global->__pyx_codeobj__471 +#define __pyx_codeobj__472 __pyx_mstate_global->__pyx_codeobj__472 +#define __pyx_codeobj__473 __pyx_mstate_global->__pyx_codeobj__473 +#define __pyx_codeobj__474 __pyx_mstate_global->__pyx_codeobj__474 +#define __pyx_codeobj__475 __pyx_mstate_global->__pyx_codeobj__475 +#define __pyx_codeobj__477 __pyx_mstate_global->__pyx_codeobj__477 +#define __pyx_codeobj__479 __pyx_mstate_global->__pyx_codeobj__479 +#define __pyx_codeobj__481 __pyx_mstate_global->__pyx_codeobj__481 +#define __pyx_codeobj__483 __pyx_mstate_global->__pyx_codeobj__483 +#define __pyx_codeobj__484 __pyx_mstate_global->__pyx_codeobj__484 +#define __pyx_codeobj__485 __pyx_mstate_global->__pyx_codeobj__485 +#define __pyx_codeobj__487 __pyx_mstate_global->__pyx_codeobj__487 +#define __pyx_codeobj__488 __pyx_mstate_global->__pyx_codeobj__488 +#define __pyx_codeobj__489 __pyx_mstate_global->__pyx_codeobj__489 +#define __pyx_codeobj__490 __pyx_mstate_global->__pyx_codeobj__490 +#define __pyx_codeobj__492 __pyx_mstate_global->__pyx_codeobj__492 +#define __pyx_codeobj__493 __pyx_mstate_global->__pyx_codeobj__493 +#define __pyx_codeobj__494 __pyx_mstate_global->__pyx_codeobj__494 +#define __pyx_codeobj__495 __pyx_mstate_global->__pyx_codeobj__495 +#define __pyx_codeobj__496 __pyx_mstate_global->__pyx_codeobj__496 +#define __pyx_codeobj__498 __pyx_mstate_global->__pyx_codeobj__498 +#define __pyx_codeobj__499 __pyx_mstate_global->__pyx_codeobj__499 +#define __pyx_codeobj__500 __pyx_mstate_global->__pyx_codeobj__500 +#define __pyx_codeobj__501 __pyx_mstate_global->__pyx_codeobj__501 +#define __pyx_codeobj__502 __pyx_mstate_global->__pyx_codeobj__502 /* #### Code section: module_code ### */ /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":286 @@ -76807,7634 +78575,56319 @@ static int __pyx_f_5talib_7_ta_lib___ta_getLookback(TA_ParamHolder *__pyx_v_hold return __pyx_r; } -static PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; -#ifndef CYTHON_SMALL_CODE -#if defined(__clang__) - #define CYTHON_SMALL_CODE -#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) - #define CYTHON_SMALL_CODE __attribute__((cold)) +/* "talib/_stream.pxi":9 + * np.import_array() # Initialize the NumPy C API + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ACOS( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds #else - #define CYTHON_SMALL_CODE +PyObject *__pyx_args, PyObject *__pyx_kwds #endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_358stream_ACOS, " ACOS(real)\n\n Vector Trigonometric ACos (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_359stream_ACOS = {"stream_ACOS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_359stream_ACOS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_358stream_ACOS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_359stream_ACOS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds #endif -/* #### Code section: pystring_table ### */ +) { + PyArrayObject *__pyx_v_real = 0; + #if !CYTHON_METH_FASTCALL + 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("stream_ACOS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 9, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ACOS") < 0)) __PYX_ERR(4, 9, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ACOS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 9, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 11, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_358stream_ACOS(__pyx_self, __pyx_v_real); -static int __Pyx_CreateStringTabAndInitStrings(void) { - __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, - {&__pyx_n_s_ACOS, __pyx_k_ACOS, sizeof(__pyx_k_ACOS), 0, 0, 1, 1}, - {&__pyx_n_s_AD, __pyx_k_AD, sizeof(__pyx_k_AD), 0, 0, 1, 1}, - {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1}, - {&__pyx_n_s_ADOSC, __pyx_k_ADOSC, sizeof(__pyx_k_ADOSC), 0, 0, 1, 1}, - {&__pyx_n_s_ADX, __pyx_k_ADX, sizeof(__pyx_k_ADX), 0, 0, 1, 1}, - {&__pyx_n_s_ADXR, __pyx_k_ADXR, sizeof(__pyx_k_ADXR), 0, 0, 1, 1}, - {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1}, - {&__pyx_n_s_APO, __pyx_k_APO, sizeof(__pyx_k_APO), 0, 0, 1, 1}, - {&__pyx_n_s_AROON, __pyx_k_AROON, sizeof(__pyx_k_AROON), 0, 0, 1, 1}, - {&__pyx_n_s_AROONOSC, __pyx_k_AROONOSC, sizeof(__pyx_k_AROONOSC), 0, 0, 1, 1}, - {&__pyx_n_s_ARRAY_TYPES, __pyx_k_ARRAY_TYPES, sizeof(__pyx_k_ARRAY_TYPES), 0, 0, 1, 1}, - {&__pyx_n_s_ASIN, __pyx_k_ASIN, sizeof(__pyx_k_ASIN), 0, 0, 1, 1}, - {&__pyx_n_s_ATAN, __pyx_k_ATAN, sizeof(__pyx_k_ATAN), 0, 0, 1, 1}, - {&__pyx_n_s_ATR, __pyx_k_ATR, sizeof(__pyx_k_ATR), 0, 0, 1, 1}, - {&__pyx_n_s_AVGPRICE, __pyx_k_AVGPRICE, sizeof(__pyx_k_AVGPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_AllCandleSettings, __pyx_k_AllCandleSettings, sizeof(__pyx_k_AllCandleSettings), 0, 0, 1, 1}, - {&__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR, __pyx_k_Allocation_Error_TA_ALLOC_ERR, sizeof(__pyx_k_Allocation_Error_TA_ALLOC_ERR), 0, 0, 1, 0}, - {&__pyx_n_s_BBANDS, __pyx_k_BBANDS, sizeof(__pyx_k_BBANDS), 0, 0, 1, 1}, - {&__pyx_n_s_BETA, __pyx_k_BETA, sizeof(__pyx_k_BETA), 0, 0, 1, 1}, - {&__pyx_n_s_BOP, __pyx_k_BOP, sizeof(__pyx_k_BOP), 0, 0, 1, 1}, - {&__pyx_kp_s_Bad_Object_TA_BAD_OBJECT, __pyx_k_Bad_Object_TA_BAD_OBJECT, sizeof(__pyx_k_Bad_Object_TA_BAD_OBJECT), 0, 0, 1, 0}, - {&__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM, __pyx_k_Bad_Parameter_TA_BAD_PARAM, sizeof(__pyx_k_Bad_Parameter_TA_BAD_PARAM), 0, 0, 1, 0}, - {&__pyx_n_s_BodyDoji, __pyx_k_BodyDoji, sizeof(__pyx_k_BodyDoji), 0, 0, 1, 1}, - {&__pyx_n_s_BodyLong, __pyx_k_BodyLong, sizeof(__pyx_k_BodyLong), 0, 0, 1, 1}, - {&__pyx_n_s_BodyShort, __pyx_k_BodyShort, sizeof(__pyx_k_BodyShort), 0, 0, 1, 1}, - {&__pyx_n_s_BodyVeryLong, __pyx_k_BodyVeryLong, sizeof(__pyx_k_BodyVeryLong), 0, 0, 1, 1}, - {&__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut, __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut, sizeof(__pyx_k_Bull_Bear_Pattern_Bearish_0_Neut), 0, 0, 1, 0}, - {&__pyx_n_s_CCI, __pyx_k_CCI, sizeof(__pyx_k_CCI), 0, 0, 1, 1}, - {&__pyx_n_s_CDL2CROWS, __pyx_k_CDL2CROWS, sizeof(__pyx_k_CDL2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3BLACKCROWS, __pyx_k_CDL3BLACKCROWS, sizeof(__pyx_k_CDL3BLACKCROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3INSIDE, __pyx_k_CDL3INSIDE, sizeof(__pyx_k_CDL3INSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3LINESTRIKE, __pyx_k_CDL3LINESTRIKE, sizeof(__pyx_k_CDL3LINESTRIKE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3OUTSIDE, __pyx_k_CDL3OUTSIDE, sizeof(__pyx_k_CDL3OUTSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3STARSINSOUTH, __pyx_k_CDL3STARSINSOUTH, sizeof(__pyx_k_CDL3STARSINSOUTH), 0, 0, 1, 1}, - {&__pyx_n_s_CDL3WHITESOLDIERS, __pyx_k_CDL3WHITESOLDIERS, sizeof(__pyx_k_CDL3WHITESOLDIERS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLABANDONEDBABY, __pyx_k_CDLABANDONEDBABY, sizeof(__pyx_k_CDLABANDONEDBABY), 0, 0, 1, 1}, - {&__pyx_n_s_CDLADVANCEBLOCK, __pyx_k_CDLADVANCEBLOCK, sizeof(__pyx_k_CDLADVANCEBLOCK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLBELTHOLD, __pyx_k_CDLBELTHOLD, sizeof(__pyx_k_CDLBELTHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLBREAKAWAY, __pyx_k_CDLBREAKAWAY, sizeof(__pyx_k_CDLBREAKAWAY), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_k_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCONCEALBABYSWALL, __pyx_k_CDLCONCEALBABYSWALL, sizeof(__pyx_k_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, - {&__pyx_n_s_CDLCOUNTERATTACK, __pyx_k_CDLCOUNTERATTACK, sizeof(__pyx_k_CDLCOUNTERATTACK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDARKCLOUDCOVER, __pyx_k_CDLDARKCLOUDCOVER, sizeof(__pyx_k_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDOJI, __pyx_k_CDLDOJI, sizeof(__pyx_k_CDLDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDOJISTAR, __pyx_k_CDLDOJISTAR, sizeof(__pyx_k_CDLDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLDRAGONFLYDOJI, __pyx_k_CDLDRAGONFLYDOJI, sizeof(__pyx_k_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLENGULFING, __pyx_k_CDLENGULFING, sizeof(__pyx_k_CDLENGULFING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLEVENINGDOJISTAR, __pyx_k_CDLEVENINGDOJISTAR, sizeof(__pyx_k_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLEVENINGSTAR, __pyx_k_CDLEVENINGSTAR, sizeof(__pyx_k_CDLEVENINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_k_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLGRAVESTONEDOJI, __pyx_k_CDLGRAVESTONEDOJI, sizeof(__pyx_k_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHAMMER, __pyx_k_CDLHAMMER, sizeof(__pyx_k_CDLHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHANGINGMAN, __pyx_k_CDLHANGINGMAN, sizeof(__pyx_k_CDLHANGINGMAN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHARAMI, __pyx_k_CDLHARAMI, sizeof(__pyx_k_CDLHARAMI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHARAMICROSS, __pyx_k_CDLHARAMICROSS, sizeof(__pyx_k_CDLHARAMICROSS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIGHWAVE, __pyx_k_CDLHIGHWAVE, sizeof(__pyx_k_CDLHIGHWAVE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIKKAKE, __pyx_k_CDLHIKKAKE, sizeof(__pyx_k_CDLHIKKAKE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHIKKAKEMOD, __pyx_k_CDLHIKKAKEMOD, sizeof(__pyx_k_CDLHIKKAKEMOD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLHOMINGPIGEON, __pyx_k_CDLHOMINGPIGEON, sizeof(__pyx_k_CDLHOMINGPIGEON), 0, 0, 1, 1}, - {&__pyx_n_s_CDLIDENTICAL3CROWS, __pyx_k_CDLIDENTICAL3CROWS, sizeof(__pyx_k_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLINNECK, __pyx_k_CDLINNECK, sizeof(__pyx_k_CDLINNECK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLINVERTEDHAMMER, __pyx_k_CDLINVERTEDHAMMER, sizeof(__pyx_k_CDLINVERTEDHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLKICKING, __pyx_k_CDLKICKING, sizeof(__pyx_k_CDLKICKING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLKICKINGBYLENGTH, __pyx_k_CDLKICKINGBYLENGTH, sizeof(__pyx_k_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLADDERBOTTOM, __pyx_k_CDLLADDERBOTTOM, sizeof(__pyx_k_CDLLADDERBOTTOM), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_k_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLLONGLINE, __pyx_k_CDLLONGLINE, sizeof(__pyx_k_CDLLONGLINE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMARUBOZU, __pyx_k_CDLMARUBOZU, sizeof(__pyx_k_CDLMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMATCHINGLOW, __pyx_k_CDLMATCHINGLOW, sizeof(__pyx_k_CDLMATCHINGLOW), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMATHOLD, __pyx_k_CDLMATHOLD, sizeof(__pyx_k_CDLMATHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMORNINGDOJISTAR, __pyx_k_CDLMORNINGDOJISTAR, sizeof(__pyx_k_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLMORNINGSTAR, __pyx_k_CDLMORNINGSTAR, sizeof(__pyx_k_CDLMORNINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLONNECK, __pyx_k_CDLONNECK, sizeof(__pyx_k_CDLONNECK), 0, 0, 1, 1}, - {&__pyx_n_s_CDLPIERCING, __pyx_k_CDLPIERCING, sizeof(__pyx_k_CDLPIERCING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLRICKSHAWMAN, __pyx_k_CDLRICKSHAWMAN, sizeof(__pyx_k_CDLRICKSHAWMAN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLRISEFALL3METHODS, __pyx_k_CDLRISEFALL3METHODS, sizeof(__pyx_k_CDLRISEFALL3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSEPARATINGLINES, __pyx_k_CDLSEPARATINGLINES, sizeof(__pyx_k_CDLSEPARATINGLINES), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSHOOTINGSTAR, __pyx_k_CDLSHOOTINGSTAR, sizeof(__pyx_k_CDLSHOOTINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSHORTLINE, __pyx_k_CDLSHORTLINE, sizeof(__pyx_k_CDLSHORTLINE), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSPINNINGTOP, __pyx_k_CDLSPINNINGTOP, sizeof(__pyx_k_CDLSPINNINGTOP), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSTALLEDPATTERN, __pyx_k_CDLSTALLEDPATTERN, sizeof(__pyx_k_CDLSTALLEDPATTERN), 0, 0, 1, 1}, - {&__pyx_n_s_CDLSTICKSANDWICH, __pyx_k_CDLSTICKSANDWICH, sizeof(__pyx_k_CDLSTICKSANDWICH), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTAKURI, __pyx_k_CDLTAKURI, sizeof(__pyx_k_CDLTAKURI), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTASUKIGAP, __pyx_k_CDLTASUKIGAP, sizeof(__pyx_k_CDLTASUKIGAP), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTHRUSTING, __pyx_k_CDLTHRUSTING, sizeof(__pyx_k_CDLTHRUSTING), 0, 0, 1, 1}, - {&__pyx_n_s_CDLTRISTAR, __pyx_k_CDLTRISTAR, sizeof(__pyx_k_CDLTRISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_CDLUNIQUE3RIVER, __pyx_k_CDLUNIQUE3RIVER, sizeof(__pyx_k_CDLUNIQUE3RIVER), 0, 0, 1, 1}, - {&__pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_k_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_k_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_CEIL, __pyx_k_CEIL, sizeof(__pyx_k_CEIL), 0, 0, 1, 1}, - {&__pyx_n_s_CMO, __pyx_k_CMO, sizeof(__pyx_k_CMO), 0, 0, 1, 1}, - {&__pyx_n_s_CORREL, __pyx_k_CORREL, sizeof(__pyx_k_CORREL), 0, 0, 1, 1}, - {&__pyx_n_s_COS, __pyx_k_COS, sizeof(__pyx_k_COS), 0, 0, 1, 1}, - {&__pyx_n_s_COSH, __pyx_k_COSH, sizeof(__pyx_k_COSH), 0, 0, 1, 1}, - {&__pyx_n_s_CandleSettingType, __pyx_k_CandleSettingType, sizeof(__pyx_k_CandleSettingType), 0, 0, 1, 1}, - {&__pyx_n_s_DEMA, __pyx_k_DEMA, sizeof(__pyx_k_DEMA), 0, 0, 1, 1}, - {&__pyx_n_s_DIV, __pyx_k_DIV, sizeof(__pyx_k_DIV), 0, 0, 1, 1}, - {&__pyx_n_s_DX, __pyx_k_DX, sizeof(__pyx_k_DX), 0, 0, 1, 1}, - {&__pyx_kp_s_Dashed_Line, __pyx_k_Dashed_Line, sizeof(__pyx_k_Dashed_Line), 0, 0, 1, 0}, - {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1}, - {&__pyx_n_s_Dot, __pyx_k_Dot, sizeof(__pyx_k_Dot), 0, 0, 1, 1}, - {&__pyx_kp_s_Dotted_Line, __pyx_k_Dotted_Line, sizeof(__pyx_k_Dotted_Line), 0, 0, 1, 0}, - {&__pyx_kp_s_Double_Exponential_Moving_Averag, __pyx_k_Double_Exponential_Moving_Averag, sizeof(__pyx_k_Double_Exponential_Moving_Averag), 0, 0, 1, 0}, - {&__pyx_n_s_EMA, __pyx_k_EMA, sizeof(__pyx_k_EMA), 0, 0, 1, 1}, - {&__pyx_n_s_EXP, __pyx_k_EXP, sizeof(__pyx_k_EXP), 0, 0, 1, 1}, - {&__pyx_n_s_Equal, __pyx_k_Equal, sizeof(__pyx_k_Equal), 0, 0, 1, 1}, - {&__pyx_kp_s_Exponential_Moving_Average, __pyx_k_Exponential_Moving_Average, sizeof(__pyx_k_Exponential_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_FLOOR, __pyx_k_FLOOR, sizeof(__pyx_k_FLOOR), 0, 0, 1, 1}, - {&__pyx_n_s_Far, __pyx_k_Far, sizeof(__pyx_k_Far), 0, 0, 1, 1}, - {&__pyx_n_s_Function, __pyx_k_Function, sizeof(__pyx_k_Function), 0, 0, 1, 1}, - {&__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F, __pyx_k_Function_Not_Found_TA_FUNC_NOT_F, sizeof(__pyx_k_Function_Not_Found_TA_FUNC_NOT_F), 0, 0, 1, 0}, - {&__pyx_n_s_Function___call, __pyx_k_Function___call, sizeof(__pyx_k_Function___call), 0, 0, 1, 1}, - {&__pyx_n_s_Function___call_function, __pyx_k_Function___call_function, sizeof(__pyx_k_Function___call_function), 0, 0, 1, 1}, - {&__pyx_n_s_Function___check_opt_input_value, __pyx_k_Function___check_opt_input_value, sizeof(__pyx_k_Function___check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function___get_opt_input_value, __pyx_k_Function___get_opt_input_value, sizeof(__pyx_k_Function___get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function___init, __pyx_k_Function___init, sizeof(__pyx_k_Function___init), 0, 0, 1, 1}, - {&__pyx_n_s_Function___input_price_series_na, __pyx_k_Function___input_price_series_na, sizeof(__pyx_k_Function___input_price_series_na), 0, 0, 1, 1}, - {&__pyx_n_s_Function___local, __pyx_k_Function___local, sizeof(__pyx_k_Function___local), 0, 0, 1, 1}, - {&__pyx_n_s_Function___repr, __pyx_k_Function___repr, sizeof(__pyx_k_Function___repr), 0, 0, 1, 1}, - {&__pyx_n_s_Function___str, __pyx_k_Function___str, sizeof(__pyx_k_Function___str), 0, 0, 1, 1}, - {&__pyx_n_s_Function___unicode, __pyx_k_Function___unicode, sizeof(__pyx_k_Function___unicode), 0, 0, 1, 1}, - {&__pyx_n_s_Function__call_function, __pyx_k_Function__call_function, sizeof(__pyx_k_Function__call_function), 0, 0, 1, 1}, - {&__pyx_n_s_Function__check_opt_input_value, __pyx_k_Function__check_opt_input_value, sizeof(__pyx_k_Function__check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function__get_opt_input_value, __pyx_k_Function__get_opt_input_value, sizeof(__pyx_k_Function__get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_Function__input_price_series_na, __pyx_k_Function__input_price_series_na, sizeof(__pyx_k_Function__input_price_series_na), 0, 0, 1, 1}, - {&__pyx_n_s_Function__local, __pyx_k_Function__local, sizeof(__pyx_k_Function__local), 0, 0, 1, 1}, - {&__pyx_n_s_Function__localdata, __pyx_k_Function__localdata, sizeof(__pyx_k_Function__localdata), 0, 0, 1, 1}, - {&__pyx_n_s_Function__name, __pyx_k_Function__name, sizeof(__pyx_k_Function__name), 0, 0, 1, 1}, - {&__pyx_n_s_Function__namestr, __pyx_k_Function__namestr, sizeof(__pyx_k_Function__namestr), 0, 0, 1, 1}, - {&__pyx_n_s_Function_function_flags, __pyx_k_Function_function_flags, sizeof(__pyx_k_Function_function_flags), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_input_arrays, __pyx_k_Function_get_input_arrays, sizeof(__pyx_k_Function_get_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_input_names, __pyx_k_Function_get_input_names, sizeof(__pyx_k_Function_get_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_get_parameters, __pyx_k_Function_get_parameters, sizeof(__pyx_k_Function_get_parameters), 0, 0, 1, 1}, - {&__pyx_kp_s_Function_has_an_unstable_period, __pyx_k_Function_has_an_unstable_period, sizeof(__pyx_k_Function_has_an_unstable_period), 0, 0, 1, 0}, - {&__pyx_n_s_Function_info, __pyx_k_Function_info, sizeof(__pyx_k_Function_info), 0, 0, 1, 1}, - {&__pyx_n_s_Function_lookback, __pyx_k_Function_lookback, sizeof(__pyx_k_Function_lookback), 0, 0, 1, 1}, - {&__pyx_n_s_Function_output_flags, __pyx_k_Function_output_flags, sizeof(__pyx_k_Function_output_flags), 0, 0, 1, 1}, - {&__pyx_n_s_Function_output_names, __pyx_k_Function_output_names, sizeof(__pyx_k_Function_output_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_outputs, __pyx_k_Function_outputs, sizeof(__pyx_k_Function_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_Function_run, __pyx_k_Function_run, sizeof(__pyx_k_Function_run), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_function_args, __pyx_k_Function_set_function_args, sizeof(__pyx_k_Function_set_function_args), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_input_arrays, __pyx_k_Function_set_input_arrays, sizeof(__pyx_k_Function_set_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_input_names, __pyx_k_Function_set_input_names, sizeof(__pyx_k_Function_set_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_Function_set_parameters, __pyx_k_Function_set_parameters, sizeof(__pyx_k_Function_set_parameters), 0, 0, 1, 1}, - {&__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU, __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU, sizeof(__pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU), 0, 0, 1, 0}, - {&__pyx_n_s_HT_DCPERIOD, __pyx_k_HT_DCPERIOD, sizeof(__pyx_k_HT_DCPERIOD), 0, 0, 1, 1}, - {&__pyx_n_s_HT_DCPHASE, __pyx_k_HT_DCPHASE, sizeof(__pyx_k_HT_DCPHASE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_PHASOR, __pyx_k_HT_PHASOR, sizeof(__pyx_k_HT_PHASOR), 0, 0, 1, 1}, - {&__pyx_n_s_HT_SINE, __pyx_k_HT_SINE, sizeof(__pyx_k_HT_SINE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_TRENDLINE, __pyx_k_HT_TRENDLINE, sizeof(__pyx_k_HT_TRENDLINE), 0, 0, 1, 1}, - {&__pyx_n_s_HT_TRENDMODE, __pyx_k_HT_TRENDMODE, sizeof(__pyx_k_HT_TRENDMODE), 0, 0, 1, 1}, - {&__pyx_n_s_HighLow, __pyx_k_HighLow, sizeof(__pyx_k_HighLow), 0, 0, 1, 1}, - {&__pyx_n_s_Histogram, __pyx_k_Histogram, sizeof(__pyx_k_Histogram), 0, 0, 1, 1}, - {&__pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_k_INPUT_ARRAYS_TYPES, sizeof(__pyx_k_INPUT_ARRAYS_TYPES), 0, 0, 1, 1}, - {&__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_k_INPUT_PRICE_SERIES_DEFAULTS, sizeof(__pyx_k_INPUT_PRICE_SERIES_DEFAULTS), 0, 0, 1, 1}, - {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, - {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, - {&__pyx_kp_s_Input_Not_All_Initialized_TA_INP, __pyx_k_Input_Not_All_Initialized_TA_INP, sizeof(__pyx_k_Input_Not_All_Initialized_TA_INP), 0, 0, 1, 0}, - {&__pyx_kp_s_Inputs, __pyx_k_Inputs, sizeof(__pyx_k_Inputs), 0, 0, 1, 0}, - {&__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR, __pyx_k_Internal_Error_TA_INTERNAL_ERROR, sizeof(__pyx_k_Internal_Error_TA_INTERNAL_ERROR), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE, __pyx_k_Invalid_Handle_TA_INVALID_HANDLE, sizeof(__pyx_k_Invalid_Handle_TA_INVALID_HANDLE), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS, __pyx_k_Invalid_List_Type_TA_INVALID_LIS, sizeof(__pyx_k_Invalid_List_Type_TA_INVALID_LIS), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Function_TA_IN, __pyx_k_Invalid_Parameter_Function_TA_IN, sizeof(__pyx_k_Invalid_Parameter_Function_TA_IN), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA, __pyx_k_Invalid_Parameter_Holder_TA_INVA, sizeof(__pyx_k_Invalid_Parameter_Holder_TA_INVA), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_Parameter_Holder_Type_TA, __pyx_k_Invalid_Parameter_Holder_Type_TA, sizeof(__pyx_k_Invalid_Parameter_Holder_Type_TA), 0, 0, 1, 0}, - {&__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_k_Invalid_parameter_value_for_s_ex, sizeof(__pyx_k_Invalid_parameter_value_for_s_ex), 0, 0, 1, 0}, - {&__pyx_n_s_KAMA, __pyx_k_KAMA, sizeof(__pyx_k_KAMA), 0, 0, 1, 1}, - {&__pyx_kp_s_Kaufman_Adaptive_Moving_Average, __pyx_k_Kaufman_Adaptive_Moving_Average, sizeof(__pyx_k_Kaufman_Adaptive_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_LINEARREG, __pyx_k_LINEARREG, sizeof(__pyx_k_LINEARREG), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_ANGLE, __pyx_k_LINEARREG_ANGLE, sizeof(__pyx_k_LINEARREG_ANGLE), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_INTERCEPT, __pyx_k_LINEARREG_INTERCEPT, sizeof(__pyx_k_LINEARREG_INTERCEPT), 0, 0, 1, 1}, - {&__pyx_n_s_LINEARREG_SLOPE, __pyx_k_LINEARREG_SLOPE, sizeof(__pyx_k_LINEARREG_SLOPE), 0, 0, 1, 1}, - {&__pyx_n_s_LN, __pyx_k_LN, sizeof(__pyx_k_LN), 0, 0, 1, 1}, - {&__pyx_n_s_LOG10, __pyx_k_LOG10, sizeof(__pyx_k_LOG10), 0, 0, 1, 1}, - {&__pyx_kp_s_Library_Not_Initialized_TA_LIB_N, __pyx_k_Library_Not_Initialized_TA_LIB_N, sizeof(__pyx_k_Library_Not_Initialized_TA_LIB_N), 0, 0, 1, 0}, - {&__pyx_n_s_Line, __pyx_k_Line, sizeof(__pyx_k_Line), 0, 0, 1, 1}, - {&__pyx_n_s_MA, __pyx_k_MA, sizeof(__pyx_k_MA), 0, 0, 1, 1}, - {&__pyx_n_s_MACD, __pyx_k_MACD, sizeof(__pyx_k_MACD), 0, 0, 1, 1}, - {&__pyx_n_s_MACDEXT, __pyx_k_MACDEXT, sizeof(__pyx_k_MACDEXT), 0, 0, 1, 1}, - {&__pyx_n_s_MACDFIX, __pyx_k_MACDFIX, sizeof(__pyx_k_MACDFIX), 0, 0, 1, 1}, - {&__pyx_n_s_MAMA, __pyx_k_MAMA, sizeof(__pyx_k_MAMA), 0, 0, 1, 1}, - {&__pyx_n_s_MAVP, __pyx_k_MAVP, sizeof(__pyx_k_MAVP), 0, 0, 1, 1}, - {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1}, - {&__pyx_n_s_MAXINDEX, __pyx_k_MAXINDEX, sizeof(__pyx_k_MAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type, __pyx_k_MA_Type, sizeof(__pyx_k_MA_Type), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type___getitem, __pyx_k_MA_Type___getitem, sizeof(__pyx_k_MA_Type___getitem), 0, 0, 1, 1}, - {&__pyx_n_s_MA_Type___init, __pyx_k_MA_Type___init, sizeof(__pyx_k_MA_Type___init), 0, 0, 1, 1}, - {&__pyx_n_s_MEDPRICE, __pyx_k_MEDPRICE, sizeof(__pyx_k_MEDPRICE), 0, 0, 1, 1}, - {&__pyx_kp_s_MESA_Adaptive_Moving_Average, __pyx_k_MESA_Adaptive_Moving_Average, sizeof(__pyx_k_MESA_Adaptive_Moving_Average), 0, 0, 1, 0}, - {&__pyx_n_s_MFI, __pyx_k_MFI, sizeof(__pyx_k_MFI), 0, 0, 1, 1}, - {&__pyx_n_s_MIDPOINT, __pyx_k_MIDPOINT, sizeof(__pyx_k_MIDPOINT), 0, 0, 1, 1}, - {&__pyx_n_s_MIDPRICE, __pyx_k_MIDPRICE, sizeof(__pyx_k_MIDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_MIN, __pyx_k_MIN, sizeof(__pyx_k_MIN), 0, 0, 1, 1}, - {&__pyx_n_s_MININDEX, __pyx_k_MININDEX, sizeof(__pyx_k_MININDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MINMAX, __pyx_k_MINMAX, sizeof(__pyx_k_MINMAX), 0, 0, 1, 1}, - {&__pyx_n_s_MINMAXINDEX, __pyx_k_MINMAXINDEX, sizeof(__pyx_k_MINMAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_MINUS_DI, __pyx_k_MINUS_DI, sizeof(__pyx_k_MINUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_MINUS_DM, __pyx_k_MINUS_DM, sizeof(__pyx_k_MINUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_MOM, __pyx_k_MOM, sizeof(__pyx_k_MOM), 0, 0, 1, 1}, - {&__pyx_n_s_MULT, __pyx_k_MULT, sizeof(__pyx_k_MULT), 0, 0, 1, 1}, - {&__pyx_n_s_ModuleNotFoundError, __pyx_k_ModuleNotFoundError, sizeof(__pyx_k_ModuleNotFoundError), 0, 0, 1, 1}, - {&__pyx_n_s_NATR, __pyx_k_NATR, sizeof(__pyx_k_NATR), 0, 0, 1, 1}, - {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, - {&__pyx_n_s_NameError, __pyx_k_NameError, sizeof(__pyx_k_NameError), 0, 0, 1, 1}, - {&__pyx_n_s_Near, __pyx_k_Near, sizeof(__pyx_k_Near), 0, 0, 1, 1}, - {&__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED, __pyx_k_Not_Supported_TA_NOT_SUPPORTED, sizeof(__pyx_k_Not_Supported_TA_NOT_SUPPORTED), 0, 0, 1, 0}, - {&__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_k_Not_enough_price_arguments_expec, sizeof(__pyx_k_Not_enough_price_arguments_expec), 0, 0, 1, 0}, - {&__pyx_n_s_OBV, __pyx_k_OBV, sizeof(__pyx_k_OBV), 0, 0, 1, 1}, - {&__pyx_n_s_OrderedDict, __pyx_k_OrderedDict, sizeof(__pyx_k_OrderedDict), 0, 0, 1, 1}, - {&__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF, __pyx_k_Out_of_Range_End_Index_TA_OUT_OF, sizeof(__pyx_k_Out_of_Range_End_Index_TA_OUT_OF), 0, 0, 1, 0}, - {&__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT, __pyx_k_Out_of_Range_Start_Index_TA_OUT, sizeof(__pyx_k_Out_of_Range_Start_Index_TA_OUT), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_Not_All_Initialized_TA_OU, __pyx_k_Output_Not_All_Initialized_TA_OU, sizeof(__pyx_k_Output_Not_All_Initialized_TA_OU), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_negative, __pyx_k_Output_can_be_negative, sizeof(__pyx_k_Output_can_be_negative), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_positive, __pyx_k_Output_can_be_positive, sizeof(__pyx_k_Output_can_be_positive), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_can_be_zero, __pyx_k_Output_can_be_zero, sizeof(__pyx_k_Output_can_be_zero), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_is_a_candlestick, __pyx_k_Output_is_a_candlestick, sizeof(__pyx_k_Output_is_a_candlestick), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_is_over_volume, __pyx_k_Output_is_over_volume, sizeof(__pyx_k_Output_is_over_volume), 0, 0, 1, 0}, - {&__pyx_kp_s_Output_scale_same_as_input, __pyx_k_Output_scale_same_as_input, sizeof(__pyx_k_Output_scale_same_as_input), 0, 0, 1, 0}, - {&__pyx_kp_s_Outputs, __pyx_k_Outputs, sizeof(__pyx_k_Outputs), 0, 0, 1, 0}, - {&__pyx_n_s_PANDAS_DATAFRAME, __pyx_k_PANDAS_DATAFRAME, sizeof(__pyx_k_PANDAS_DATAFRAME), 0, 0, 1, 1}, - {&__pyx_n_s_PANDAS_SERIES, __pyx_k_PANDAS_SERIES, sizeof(__pyx_k_PANDAS_SERIES), 0, 0, 1, 1}, - {&__pyx_n_s_PLUS_DI, __pyx_k_PLUS_DI, sizeof(__pyx_k_PLUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_PLUS_DM, __pyx_k_PLUS_DM, sizeof(__pyx_k_PLUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_POLARS_DATAFRAME, __pyx_k_POLARS_DATAFRAME, sizeof(__pyx_k_POLARS_DATAFRAME), 0, 0, 1, 1}, - {&__pyx_n_s_POLARS_SERIES, __pyx_k_POLARS_SERIES, sizeof(__pyx_k_POLARS_SERIES), 0, 0, 1, 1}, - {&__pyx_n_s_PPO, __pyx_k_PPO, sizeof(__pyx_k_PPO), 0, 0, 1, 1}, - {&__pyx_kp_s_Parameters, __pyx_k_Parameters, sizeof(__pyx_k_Parameters), 0, 0, 1, 0}, - {&__pyx_kp_s_Pattern_Bool, __pyx_k_Pattern_Bool, sizeof(__pyx_k_Pattern_Bool), 0, 0, 1, 0}, - {&__pyx_n_s_ROC, __pyx_k_ROC, sizeof(__pyx_k_ROC), 0, 0, 1, 1}, - {&__pyx_n_s_ROCP, __pyx_k_ROCP, sizeof(__pyx_k_ROCP), 0, 0, 1, 1}, - {&__pyx_n_s_ROCR, __pyx_k_ROCR, sizeof(__pyx_k_ROCR), 0, 0, 1, 1}, - {&__pyx_n_s_ROCR100, __pyx_k_ROCR100, sizeof(__pyx_k_ROCR100), 0, 0, 1, 1}, - {&__pyx_n_s_RSI, __pyx_k_RSI, sizeof(__pyx_k_RSI), 0, 0, 1, 1}, - {&__pyx_n_s_RangeType, __pyx_k_RangeType, sizeof(__pyx_k_RangeType), 0, 0, 1, 1}, - {&__pyx_n_s_RealBody, __pyx_k_RealBody, sizeof(__pyx_k_RealBody), 0, 0, 1, 1}, - {&__pyx_n_s_SAR, __pyx_k_SAR, sizeof(__pyx_k_SAR), 0, 0, 1, 1}, - {&__pyx_n_s_SAREXT, __pyx_k_SAREXT, sizeof(__pyx_k_SAREXT), 0, 0, 1, 1}, - {&__pyx_n_s_SIN, __pyx_k_SIN, sizeof(__pyx_k_SIN), 0, 0, 1, 1}, - {&__pyx_n_s_SINH, __pyx_k_SINH, sizeof(__pyx_k_SINH), 0, 0, 1, 1}, - {&__pyx_n_s_SMA, __pyx_k_SMA, sizeof(__pyx_k_SMA), 0, 0, 1, 1}, - {&__pyx_n_s_SQRT, __pyx_k_SQRT, sizeof(__pyx_k_SQRT), 0, 0, 1, 1}, - {&__pyx_n_s_STDDEV, __pyx_k_STDDEV, sizeof(__pyx_k_STDDEV), 0, 0, 1, 1}, - {&__pyx_n_s_STOCH, __pyx_k_STOCH, sizeof(__pyx_k_STOCH), 0, 0, 1, 1}, - {&__pyx_n_s_STOCHF, __pyx_k_STOCHF, sizeof(__pyx_k_STOCHF), 0, 0, 1, 1}, - {&__pyx_n_s_STOCHRSI, __pyx_k_STOCHRSI, sizeof(__pyx_k_STOCHRSI), 0, 0, 1, 1}, - {&__pyx_n_s_SUB, __pyx_k_SUB, sizeof(__pyx_k_SUB), 0, 0, 1, 1}, - {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1}, - {&__pyx_n_s_Series, __pyx_k_Series, sizeof(__pyx_k_Series), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowLong, __pyx_k_ShadowLong, sizeof(__pyx_k_ShadowLong), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowShort, __pyx_k_ShadowShort, sizeof(__pyx_k_ShadowShort), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowVeryLong, __pyx_k_ShadowVeryLong, sizeof(__pyx_k_ShadowVeryLong), 0, 0, 1, 1}, - {&__pyx_n_s_ShadowVeryShort, __pyx_k_ShadowVeryShort, sizeof(__pyx_k_ShadowVeryShort), 0, 0, 1, 1}, - {&__pyx_n_s_Shadows, __pyx_k_Shadows, sizeof(__pyx_k_Shadows), 0, 0, 1, 1}, - {&__pyx_kp_s_Simple_Moving_Average, __pyx_k_Simple_Moving_Average, sizeof(__pyx_k_Simple_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s_Strength_Pattern_200_100_Bearish, __pyx_k_Strength_Pattern_200_100_Bearish, sizeof(__pyx_k_Strength_Pattern_200_100_Bearish), 0, 0, 1, 0}, - {&__pyx_n_s_T3, __pyx_k_T3, sizeof(__pyx_k_T3), 0, 0, 1, 1}, - {&__pyx_n_s_TAN, __pyx_k_TAN, sizeof(__pyx_k_TAN), 0, 0, 1, 1}, - {&__pyx_n_s_TANH, __pyx_k_TANH, sizeof(__pyx_k_TANH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ACOS, __pyx_k_TA_ACOS, sizeof(__pyx_k_TA_ACOS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AD, __pyx_k_TA_AD, sizeof(__pyx_k_TA_AD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADD, __pyx_k_TA_ADD, sizeof(__pyx_k_TA_ADD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADOSC, __pyx_k_TA_ADOSC, sizeof(__pyx_k_TA_ADOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADX, __pyx_k_TA_ADX, sizeof(__pyx_k_TA_ADX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ADXR, __pyx_k_TA_ADXR, sizeof(__pyx_k_TA_ADXR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_APO, __pyx_k_TA_APO, sizeof(__pyx_k_TA_APO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AROON, __pyx_k_TA_AROON, sizeof(__pyx_k_TA_AROON), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AROONOSC, __pyx_k_TA_AROONOSC, sizeof(__pyx_k_TA_AROONOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ASIN, __pyx_k_TA_ASIN, sizeof(__pyx_k_TA_ASIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ATAN, __pyx_k_TA_ATAN, sizeof(__pyx_k_TA_ATAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ATR, __pyx_k_TA_ATR, sizeof(__pyx_k_TA_ATR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_AVGPRICE, __pyx_k_TA_AVGPRICE, sizeof(__pyx_k_TA_AVGPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BBANDS, __pyx_k_TA_BBANDS, sizeof(__pyx_k_TA_BBANDS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BETA, __pyx_k_TA_BETA, sizeof(__pyx_k_TA_BETA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_BOP, __pyx_k_TA_BOP, sizeof(__pyx_k_TA_BOP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CCI, __pyx_k_TA_CCI, sizeof(__pyx_k_TA_CCI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL2CROWS, __pyx_k_TA_CDL2CROWS, sizeof(__pyx_k_TA_CDL2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_k_TA_CDL3BLACKCROWS, sizeof(__pyx_k_TA_CDL3BLACKCROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3INSIDE, __pyx_k_TA_CDL3INSIDE, sizeof(__pyx_k_TA_CDL3INSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_k_TA_CDL3LINESTRIKE, sizeof(__pyx_k_TA_CDL3LINESTRIKE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3OUTSIDE, __pyx_k_TA_CDL3OUTSIDE, sizeof(__pyx_k_TA_CDL3OUTSIDE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_k_TA_CDL3STARSINSOUTH, sizeof(__pyx_k_TA_CDL3STARSINSOUTH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_k_TA_CDL3WHITESOLDIERS, sizeof(__pyx_k_TA_CDL3WHITESOLDIERS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_k_TA_CDLABANDONEDBABY, sizeof(__pyx_k_TA_CDLABANDONEDBABY), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_k_TA_CDLADVANCEBLOCK, sizeof(__pyx_k_TA_CDLADVANCEBLOCK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLBELTHOLD, __pyx_k_TA_CDLBELTHOLD, sizeof(__pyx_k_TA_CDLBELTHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLBREAKAWAY, __pyx_k_TA_CDLBREAKAWAY, sizeof(__pyx_k_TA_CDLBREAKAWAY), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_k_TA_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_TA_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_k_TA_CDLCONCEALBABYSWALL, sizeof(__pyx_k_TA_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_k_TA_CDLCOUNTERATTACK, sizeof(__pyx_k_TA_CDLCOUNTERATTACK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_k_TA_CDLDARKCLOUDCOVER, sizeof(__pyx_k_TA_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDOJI, __pyx_k_TA_CDLDOJI, sizeof(__pyx_k_TA_CDLDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDOJISTAR, __pyx_k_TA_CDLDOJISTAR, sizeof(__pyx_k_TA_CDLDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_k_TA_CDLDRAGONFLYDOJI, sizeof(__pyx_k_TA_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLENGULFING, __pyx_k_TA_CDLENGULFING, sizeof(__pyx_k_TA_CDLENGULFING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_k_TA_CDLEVENINGDOJISTAR, sizeof(__pyx_k_TA_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_k_TA_CDLEVENINGSTAR, sizeof(__pyx_k_TA_CDLEVENINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_k_TA_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_TA_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_k_TA_CDLGRAVESTONEDOJI, sizeof(__pyx_k_TA_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHAMMER, __pyx_k_TA_CDLHAMMER, sizeof(__pyx_k_TA_CDLHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHANGINGMAN, __pyx_k_TA_CDLHANGINGMAN, sizeof(__pyx_k_TA_CDLHANGINGMAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHARAMI, __pyx_k_TA_CDLHARAMI, sizeof(__pyx_k_TA_CDLHARAMI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHARAMICROSS, __pyx_k_TA_CDLHARAMICROSS, sizeof(__pyx_k_TA_CDLHARAMICROSS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIGHWAVE, __pyx_k_TA_CDLHIGHWAVE, sizeof(__pyx_k_TA_CDLHIGHWAVE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIKKAKE, __pyx_k_TA_CDLHIKKAKE, sizeof(__pyx_k_TA_CDLHIKKAKE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_k_TA_CDLHIKKAKEMOD, sizeof(__pyx_k_TA_CDLHIKKAKEMOD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_k_TA_CDLHOMINGPIGEON, sizeof(__pyx_k_TA_CDLHOMINGPIGEON), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_k_TA_CDLIDENTICAL3CROWS, sizeof(__pyx_k_TA_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLINNECK, __pyx_k_TA_CDLINNECK, sizeof(__pyx_k_TA_CDLINNECK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_k_TA_CDLINVERTEDHAMMER, sizeof(__pyx_k_TA_CDLINVERTEDHAMMER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLKICKING, __pyx_k_TA_CDLKICKING, sizeof(__pyx_k_TA_CDLKICKING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_k_TA_CDLKICKINGBYLENGTH, sizeof(__pyx_k_TA_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_k_TA_CDLLADDERBOTTOM, sizeof(__pyx_k_TA_CDLLADDERBOTTOM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_k_TA_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_TA_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLLONGLINE, __pyx_k_TA_CDLLONGLINE, sizeof(__pyx_k_TA_CDLLONGLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMARUBOZU, __pyx_k_TA_CDLMARUBOZU, sizeof(__pyx_k_TA_CDLMARUBOZU), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_k_TA_CDLMATCHINGLOW, sizeof(__pyx_k_TA_CDLMATCHINGLOW), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMATHOLD, __pyx_k_TA_CDLMATHOLD, sizeof(__pyx_k_TA_CDLMATHOLD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_k_TA_CDLMORNINGDOJISTAR, sizeof(__pyx_k_TA_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_k_TA_CDLMORNINGSTAR, sizeof(__pyx_k_TA_CDLMORNINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLONNECK, __pyx_k_TA_CDLONNECK, sizeof(__pyx_k_TA_CDLONNECK), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLPIERCING, __pyx_k_TA_CDLPIERCING, sizeof(__pyx_k_TA_CDLPIERCING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_k_TA_CDLRICKSHAWMAN, sizeof(__pyx_k_TA_CDLRICKSHAWMAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_k_TA_CDLRISEFALL3METHODS, sizeof(__pyx_k_TA_CDLRISEFALL3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_k_TA_CDLSEPARATINGLINES, sizeof(__pyx_k_TA_CDLSEPARATINGLINES), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_k_TA_CDLSHOOTINGSTAR, sizeof(__pyx_k_TA_CDLSHOOTINGSTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSHORTLINE, __pyx_k_TA_CDLSHORTLINE, sizeof(__pyx_k_TA_CDLSHORTLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_k_TA_CDLSPINNINGTOP, sizeof(__pyx_k_TA_CDLSPINNINGTOP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_k_TA_CDLSTALLEDPATTERN, sizeof(__pyx_k_TA_CDLSTALLEDPATTERN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_k_TA_CDLSTICKSANDWICH, sizeof(__pyx_k_TA_CDLSTICKSANDWICH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTAKURI, __pyx_k_TA_CDLTAKURI, sizeof(__pyx_k_TA_CDLTAKURI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTASUKIGAP, __pyx_k_TA_CDLTASUKIGAP, sizeof(__pyx_k_TA_CDLTASUKIGAP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTHRUSTING, __pyx_k_TA_CDLTHRUSTING, sizeof(__pyx_k_TA_CDLTHRUSTING), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLTRISTAR, __pyx_k_TA_CDLTRISTAR, sizeof(__pyx_k_TA_CDLTRISTAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_k_TA_CDLUNIQUE3RIVER, sizeof(__pyx_k_TA_CDLUNIQUE3RIVER), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_k_TA_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_TA_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_k_TA_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_TA_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CEIL, __pyx_k_TA_CEIL, sizeof(__pyx_k_TA_CEIL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CMO, __pyx_k_TA_CMO, sizeof(__pyx_k_TA_CMO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_CORREL, __pyx_k_TA_CORREL, sizeof(__pyx_k_TA_CORREL), 0, 0, 1, 1}, - {&__pyx_n_s_TA_COS, __pyx_k_TA_COS, sizeof(__pyx_k_TA_COS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_COSH, __pyx_k_TA_COSH, sizeof(__pyx_k_TA_COSH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DEMA, __pyx_k_TA_DEMA, sizeof(__pyx_k_TA_DEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DIV, __pyx_k_TA_DIV, sizeof(__pyx_k_TA_DIV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_DX, __pyx_k_TA_DX, sizeof(__pyx_k_TA_DX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_EMA, __pyx_k_TA_EMA, sizeof(__pyx_k_TA_EMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_EXP, __pyx_k_TA_EXP, sizeof(__pyx_k_TA_EXP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FLOOR, __pyx_k_TA_FLOOR, sizeof(__pyx_k_TA_FLOOR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FUNCTION_NAMES, __pyx_k_TA_FUNCTION_NAMES, sizeof(__pyx_k_TA_FUNCTION_NAMES), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FUNC_FLAGS, __pyx_k_TA_FUNC_FLAGS, sizeof(__pyx_k_TA_FUNC_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FuncTableAlloc, __pyx_k_TA_FuncTableAlloc, sizeof(__pyx_k_TA_FuncTableAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_FuncTableFree, __pyx_k_TA_FuncTableFree, sizeof(__pyx_k_TA_FuncTableFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetFuncHandle, __pyx_k_TA_GetFuncHandle, sizeof(__pyx_k_TA_GetFuncHandle), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetFuncInfo, __pyx_k_TA_GetFuncInfo, sizeof(__pyx_k_TA_GetFuncInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetInputParameterInfo, __pyx_k_TA_GetInputParameterInfo, sizeof(__pyx_k_TA_GetInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetLookback, __pyx_k_TA_GetLookback, sizeof(__pyx_k_TA_GetLookback), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_k_TA_GetOptInputParameterInfo, sizeof(__pyx_k_TA_GetOptInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GetOutputParameterInfo, __pyx_k_TA_GetOutputParameterInfo, sizeof(__pyx_k_TA_GetOutputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GroupTableAlloc, __pyx_k_TA_GroupTableAlloc, sizeof(__pyx_k_TA_GroupTableAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_GroupTableFree, __pyx_k_TA_GroupTableFree, sizeof(__pyx_k_TA_GroupTableFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_DCPERIOD, __pyx_k_TA_HT_DCPERIOD, sizeof(__pyx_k_TA_HT_DCPERIOD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_DCPHASE, __pyx_k_TA_HT_DCPHASE, sizeof(__pyx_k_TA_HT_DCPHASE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_PHASOR, __pyx_k_TA_HT_PHASOR, sizeof(__pyx_k_TA_HT_PHASOR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_SINE, __pyx_k_TA_HT_SINE, sizeof(__pyx_k_TA_HT_SINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_TRENDLINE, __pyx_k_TA_HT_TRENDLINE, sizeof(__pyx_k_TA_HT_TRENDLINE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_HT_TRENDMODE, __pyx_k_TA_HT_TRENDMODE, sizeof(__pyx_k_TA_HT_TRENDMODE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_INPUT_FLAGS, __pyx_k_TA_INPUT_FLAGS, sizeof(__pyx_k_TA_INPUT_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_Initialize, __pyx_k_TA_Initialize, sizeof(__pyx_k_TA_Initialize), 0, 0, 1, 1}, - {&__pyx_n_s_TA_KAMA, __pyx_k_TA_KAMA, sizeof(__pyx_k_TA_KAMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG, __pyx_k_TA_LINEARREG, sizeof(__pyx_k_TA_LINEARREG), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_k_TA_LINEARREG_ANGLE, sizeof(__pyx_k_TA_LINEARREG_ANGLE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_k_TA_LINEARREG_INTERCEPT, sizeof(__pyx_k_TA_LINEARREG_INTERCEPT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_k_TA_LINEARREG_SLOPE, sizeof(__pyx_k_TA_LINEARREG_SLOPE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LN, __pyx_k_TA_LN, sizeof(__pyx_k_TA_LN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_LOG10, __pyx_k_TA_LOG10, sizeof(__pyx_k_TA_LOG10), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MA, __pyx_k_TA_MA, sizeof(__pyx_k_TA_MA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACD, __pyx_k_TA_MACD, sizeof(__pyx_k_TA_MACD), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACDEXT, __pyx_k_TA_MACDEXT, sizeof(__pyx_k_TA_MACDEXT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MACDFIX, __pyx_k_TA_MACDFIX, sizeof(__pyx_k_TA_MACDFIX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAMA, __pyx_k_TA_MAMA, sizeof(__pyx_k_TA_MAMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAVP, __pyx_k_TA_MAVP, sizeof(__pyx_k_TA_MAVP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAX, __pyx_k_TA_MAX, sizeof(__pyx_k_TA_MAX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MAXINDEX, __pyx_k_TA_MAXINDEX, sizeof(__pyx_k_TA_MAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MEDPRICE, __pyx_k_TA_MEDPRICE, sizeof(__pyx_k_TA_MEDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MFI, __pyx_k_TA_MFI, sizeof(__pyx_k_TA_MFI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIDPOINT, __pyx_k_TA_MIDPOINT, sizeof(__pyx_k_TA_MIDPOINT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIDPRICE, __pyx_k_TA_MIDPRICE, sizeof(__pyx_k_TA_MIDPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MIN, __pyx_k_TA_MIN, sizeof(__pyx_k_TA_MIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MININDEX, __pyx_k_TA_MININDEX, sizeof(__pyx_k_TA_MININDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINMAX, __pyx_k_TA_MINMAX, sizeof(__pyx_k_TA_MINMAX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINMAXINDEX, __pyx_k_TA_MINMAXINDEX, sizeof(__pyx_k_TA_MINMAXINDEX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINUS_DI, __pyx_k_TA_MINUS_DI, sizeof(__pyx_k_TA_MINUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MINUS_DM, __pyx_k_TA_MINUS_DM, sizeof(__pyx_k_TA_MINUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MOM, __pyx_k_TA_MOM, sizeof(__pyx_k_TA_MOM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_MULT, __pyx_k_TA_MULT, sizeof(__pyx_k_TA_MULT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_NATR, __pyx_k_TA_NATR, sizeof(__pyx_k_TA_NATR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_OBV, __pyx_k_TA_OBV, sizeof(__pyx_k_TA_OBV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_OUTPUT_FLAGS, __pyx_k_TA_OUTPUT_FLAGS, sizeof(__pyx_k_TA_OUTPUT_FLAGS), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PLUS_DI, __pyx_k_TA_PLUS_DI, sizeof(__pyx_k_TA_PLUS_DI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PLUS_DM, __pyx_k_TA_PLUS_DM, sizeof(__pyx_k_TA_PLUS_DM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_PPO, __pyx_k_TA_PPO, sizeof(__pyx_k_TA_PPO), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ParamHolderAlloc, __pyx_k_TA_ParamHolderAlloc, sizeof(__pyx_k_TA_ParamHolderAlloc), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ParamHolderFree, __pyx_k_TA_ParamHolderFree, sizeof(__pyx_k_TA_ParamHolderFree), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROC, __pyx_k_TA_ROC, sizeof(__pyx_k_TA_ROC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCP, __pyx_k_TA_ROCP, sizeof(__pyx_k_TA_ROCP), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCR, __pyx_k_TA_ROCR, sizeof(__pyx_k_TA_ROCR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ROCR100, __pyx_k_TA_ROCR100, sizeof(__pyx_k_TA_ROCR100), 0, 0, 1, 1}, - {&__pyx_n_s_TA_RSI, __pyx_k_TA_RSI, sizeof(__pyx_k_TA_RSI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_k_TA_RestoreCandleDefaultSettings, sizeof(__pyx_k_TA_RestoreCandleDefaultSettings), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SAR, __pyx_k_TA_SAR, sizeof(__pyx_k_TA_SAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SAREXT, __pyx_k_TA_SAREXT, sizeof(__pyx_k_TA_SAREXT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SIN, __pyx_k_TA_SIN, sizeof(__pyx_k_TA_SIN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SINH, __pyx_k_TA_SINH, sizeof(__pyx_k_TA_SINH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SMA, __pyx_k_TA_SMA, sizeof(__pyx_k_TA_SMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SQRT, __pyx_k_TA_SQRT, sizeof(__pyx_k_TA_SQRT), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STDDEV, __pyx_k_TA_STDDEV, sizeof(__pyx_k_TA_STDDEV), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCH, __pyx_k_TA_STOCH, sizeof(__pyx_k_TA_STOCH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCHF, __pyx_k_TA_STOCHF, sizeof(__pyx_k_TA_STOCHF), 0, 0, 1, 1}, - {&__pyx_n_s_TA_STOCHRSI, __pyx_k_TA_STOCHRSI, sizeof(__pyx_k_TA_STOCHRSI), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SUB, __pyx_k_TA_SUB, sizeof(__pyx_k_TA_SUB), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SUM, __pyx_k_TA_SUM, sizeof(__pyx_k_TA_SUM), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetCandleSettings, __pyx_k_TA_SetCandleSettings, sizeof(__pyx_k_TA_SetCandleSettings), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetCompatibility, __pyx_k_TA_SetCompatibility, sizeof(__pyx_k_TA_SetCompatibility), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetOptInputParamInteger, __pyx_k_TA_SetOptInputParamInteger, sizeof(__pyx_k_TA_SetOptInputParamInteger), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetOptInputParamReal, __pyx_k_TA_SetOptInputParamReal, sizeof(__pyx_k_TA_SetOptInputParamReal), 0, 0, 1, 1}, - {&__pyx_n_s_TA_SetUnstablePeriod, __pyx_k_TA_SetUnstablePeriod, sizeof(__pyx_k_TA_SetUnstablePeriod), 0, 0, 1, 1}, - {&__pyx_n_s_TA_Shutdown, __pyx_k_TA_Shutdown, sizeof(__pyx_k_TA_Shutdown), 0, 0, 1, 1}, - {&__pyx_n_s_TA_T3, __pyx_k_TA_T3, sizeof(__pyx_k_TA_T3), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TAN, __pyx_k_TA_TAN, sizeof(__pyx_k_TA_TAN), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TANH, __pyx_k_TA_TANH, sizeof(__pyx_k_TA_TANH), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TEMA, __pyx_k_TA_TEMA, sizeof(__pyx_k_TA_TEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRANGE, __pyx_k_TA_TRANGE, sizeof(__pyx_k_TA_TRANGE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRIMA, __pyx_k_TA_TRIMA, sizeof(__pyx_k_TA_TRIMA), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TRIX, __pyx_k_TA_TRIX, sizeof(__pyx_k_TA_TRIX), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TSF, __pyx_k_TA_TSF, sizeof(__pyx_k_TA_TSF), 0, 0, 1, 1}, - {&__pyx_n_s_TA_TYPPRICE, __pyx_k_TA_TYPPRICE, sizeof(__pyx_k_TA_TYPPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_ULTOSC, __pyx_k_TA_ULTOSC, sizeof(__pyx_k_TA_ULTOSC), 0, 0, 1, 1}, - {&__pyx_n_s_TA_VAR, __pyx_k_TA_VAR, sizeof(__pyx_k_TA_VAR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WCLPRICE, __pyx_k_TA_WCLPRICE, sizeof(__pyx_k_TA_WCLPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WILLR, __pyx_k_TA_WILLR, sizeof(__pyx_k_TA_WILLR), 0, 0, 1, 1}, - {&__pyx_n_s_TA_WMA, __pyx_k_TA_WMA, sizeof(__pyx_k_TA_WMA), 0, 0, 1, 1}, - {&__pyx_n_s_TEMA, __pyx_k_TEMA, sizeof(__pyx_k_TEMA), 0, 0, 1, 1}, - {&__pyx_n_s_TRANGE, __pyx_k_TRANGE, sizeof(__pyx_k_TRANGE), 0, 0, 1, 1}, - {&__pyx_n_s_TRIMA, __pyx_k_TRIMA, sizeof(__pyx_k_TRIMA), 0, 0, 1, 1}, - {&__pyx_n_s_TRIX, __pyx_k_TRIX, sizeof(__pyx_k_TRIX), 0, 0, 1, 1}, - {&__pyx_n_s_TSF, __pyx_k_TSF, sizeof(__pyx_k_TSF), 0, 0, 1, 1}, - {&__pyx_n_s_TYPPRICE, __pyx_k_TYPPRICE, sizeof(__pyx_k_TYPPRICE), 0, 0, 1, 1}, - {&__pyx_kp_s_This_is_a_pythonic_wrapper_arou, __pyx_k_This_is_a_pythonic_wrapper_arou, sizeof(__pyx_k_This_is_a_pythonic_wrapper_arou), 0, 0, 1, 0}, - {&__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_k_Too_many_price_arguments_expecte, sizeof(__pyx_k_Too_many_price_arguments_expecte), 0, 0, 1, 0}, - {&__pyx_kp_s_Triangular_Moving_Average, __pyx_k_Triangular_Moving_Average, sizeof(__pyx_k_Triangular_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s_Triple_Exponential_Moving_Averag, __pyx_k_Triple_Exponential_Moving_Averag, sizeof(__pyx_k_Triple_Exponential_Moving_Averag), 0, 0, 1, 0}, - {&__pyx_kp_s_Triple_Generalized_Double_Expone, __pyx_k_Triple_Generalized_Double_Expone, sizeof(__pyx_k_Triple_Generalized_Double_Expone), 0, 0, 1, 0}, - {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, - {&__pyx_n_s_ULTOSC, __pyx_k_ULTOSC, sizeof(__pyx_k_ULTOSC), 0, 0, 1, 1}, - {&__pyx_kp_s_Unknown_Error, __pyx_k_Unknown_Error, sizeof(__pyx_k_Unknown_Error), 0, 0, 1, 0}, - {&__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR, __pyx_k_Unknown_Error_TA_UNKNOWN_ERR, sizeof(__pyx_k_Unknown_Error_TA_UNKNOWN_ERR), 0, 0, 1, 0}, - {&__pyx_n_s_VAR, __pyx_k_VAR, sizeof(__pyx_k_VAR), 0, 0, 1, 1}, - {&__pyx_kp_s_Values_represent_a_lower_limit, __pyx_k_Values_represent_a_lower_limit, sizeof(__pyx_k_Values_represent_a_lower_limit), 0, 0, 1, 0}, - {&__pyx_kp_s_Values_represent_an_upper_limit, __pyx_k_Values_represent_an_upper_limit, sizeof(__pyx_k_Values_represent_an_upper_limit), 0, 0, 1, 0}, - {&__pyx_n_s_WCLPRICE, __pyx_k_WCLPRICE, sizeof(__pyx_k_WCLPRICE), 0, 0, 1, 1}, - {&__pyx_n_s_WILLR, __pyx_k_WILLR, sizeof(__pyx_k_WILLR), 0, 0, 1, 1}, - {&__pyx_n_s_WMA, __pyx_k_WMA, sizeof(__pyx_k_WMA), 0, 0, 1, 1}, - {&__pyx_kp_s_Weighted_Moving_Average, __pyx_k_Weighted_Moving_Average, sizeof(__pyx_k_Weighted_Moving_Average), 0, 0, 1, 0}, - {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, - {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0}, - {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0}, - {&__pyx_n_s__240, __pyx_k__240, sizeof(__pyx_k__240), 0, 0, 1, 1}, - {&__pyx_n_s__307, __pyx_k__307, sizeof(__pyx_k__307), 0, 0, 1, 1}, - {&__pyx_kp_u__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 1, 0, 0}, - {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0}, - {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, - {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, - {&__pyx_n_s_acceleration, __pyx_k_acceleration, sizeof(__pyx_k_acceleration), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationinitlong, __pyx_k_accelerationinitlong, sizeof(__pyx_k_accelerationinitlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationinitshort, __pyx_k_accelerationinitshort, sizeof(__pyx_k_accelerationinitshort), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationlong, __pyx_k_accelerationlong, sizeof(__pyx_k_accelerationlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationmaxlong, __pyx_k_accelerationmaxlong, sizeof(__pyx_k_accelerationmaxlong), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationmaxshort, __pyx_k_accelerationmaxshort, sizeof(__pyx_k_accelerationmaxshort), 0, 0, 1, 1}, - {&__pyx_n_s_accelerationshort, __pyx_k_accelerationshort, sizeof(__pyx_k_accelerationshort), 0, 0, 1, 1}, - {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, - {&__pyx_kp_s_any_ndarray, __pyx_k_any_ndarray, sizeof(__pyx_k_any_ndarray), 0, 0, 1, 0}, - {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, - {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1}, - {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, - {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1}, - {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, - {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, - {&__pyx_n_s_avgperiod, __pyx_k_avgperiod, sizeof(__pyx_k_avgperiod), 0, 0, 1, 1}, - {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, - {&__pyx_n_s_begidx, __pyx_k_begidx, sizeof(__pyx_k_begidx), 0, 0, 1, 1}, - {&__pyx_n_s_bytes2str, __pyx_k_bytes2str, sizeof(__pyx_k_bytes2str), 0, 0, 1, 1}, - {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, - {&__pyx_n_s_call_function, __pyx_k_call_function, sizeof(__pyx_k_call_function), 0, 0, 1, 1}, - {&__pyx_n_s_check_opt_input_value, __pyx_k_check_opt_input_value, sizeof(__pyx_k_check_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, - {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, - {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, - {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, - {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1}, - {&__pyx_n_s_column_stack, __pyx_k_column_stack, sizeof(__pyx_k_column_stack), 0, 0, 1, 1}, - {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1}, - {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, - {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, - {&__pyx_n_s_default_value, __pyx_k_default_value, sizeof(__pyx_k_default_value), 0, 0, 1, 1}, - {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, - {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, - {&__pyx_n_s_display_name, __pyx_k_display_name, sizeof(__pyx_k_display_name), 0, 0, 1, 1}, - {&__pyx_kp_s_display_name_s_group_s, __pyx_k_display_name_s_group_s, sizeof(__pyx_k_display_name_s_group_s), 0, 0, 1, 0}, - {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, - {&__pyx_n_s_docs, __pyx_k_docs, sizeof(__pyx_k_docs), 0, 0, 1, 1}, - {&__pyx_n_s_documentation, __pyx_k_documentation, sizeof(__pyx_k_documentation), 0, 0, 1, 1}, - {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, - {&__pyx_n_s_endidx, __pyx_k_endidx, sizeof(__pyx_k_endidx), 0, 0, 1, 1}, - {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, - {&__pyx_n_s_factor, __pyx_k_factor, sizeof(__pyx_k_factor), 0, 0, 1, 1}, - {&__pyx_n_s_fastd_matype, __pyx_k_fastd_matype, sizeof(__pyx_k_fastd_matype), 0, 0, 1, 1}, - {&__pyx_n_s_fastd_period, __pyx_k_fastd_period, sizeof(__pyx_k_fastd_period), 0, 0, 1, 1}, - {&__pyx_n_s_fastk_period, __pyx_k_fastk_period, sizeof(__pyx_k_fastk_period), 0, 0, 1, 1}, - {&__pyx_n_s_fastlimit, __pyx_k_fastlimit, sizeof(__pyx_k_fastlimit), 0, 0, 1, 1}, - {&__pyx_n_s_fastmatype, __pyx_k_fastmatype, sizeof(__pyx_k_fastmatype), 0, 0, 1, 1}, - {&__pyx_n_s_fastperiod, __pyx_k_fastperiod, sizeof(__pyx_k_fastperiod), 0, 0, 1, 1}, - {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1}, - {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, - {&__pyx_n_s_flags_lookup_dict, __pyx_k_flags_lookup_dict, sizeof(__pyx_k_flags_lookup_dict), 0, 0, 1, 1}, - {&__pyx_n_s_func_args, __pyx_k_func_args, sizeof(__pyx_k_func_args), 0, 0, 1, 1}, - {&__pyx_n_s_func_info, __pyx_k_func_info, sizeof(__pyx_k_func_info), 0, 0, 1, 1}, - {&__pyx_n_s_func_line, __pyx_k_func_line, sizeof(__pyx_k_func_line), 0, 0, 1, 1}, - {&__pyx_n_s_func_object, __pyx_k_func_object, sizeof(__pyx_k_func_object), 0, 0, 1, 1}, - {&__pyx_n_s_function_flags, __pyx_k_function_flags, sizeof(__pyx_k_function_flags), 0, 0, 1, 1}, - {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1}, - {&__pyx_n_s_functions, __pyx_k_functions, sizeof(__pyx_k_functions), 0, 0, 1, 1}, - {&__pyx_n_s_get_defaults_and_docs, __pyx_k_get_defaults_and_docs, sizeof(__pyx_k_get_defaults_and_docs), 0, 0, 1, 1}, - {&__pyx_n_s_get_flags, __pyx_k_get_flags, sizeof(__pyx_k_get_flags), 0, 0, 1, 1}, - {&__pyx_n_s_get_input_arrays, __pyx_k_get_input_arrays, sizeof(__pyx_k_get_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_get_input_names, __pyx_k_get_input_names, sizeof(__pyx_k_get_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_get_opt_input_value, __pyx_k_get_opt_input_value, sizeof(__pyx_k_get_opt_input_value), 0, 0, 1, 1}, - {&__pyx_n_s_get_parameters, __pyx_k_get_parameters, sizeof(__pyx_k_get_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1}, - {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1}, - {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, - {&__pyx_n_s_help, __pyx_k_help, sizeof(__pyx_k_help), 0, 0, 1, 1}, - {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1}, - {&__pyx_n_s_holder, __pyx_k_holder, sizeof(__pyx_k_holder), 0, 0, 1, 1}, - {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, - {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, - {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1}, - {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, - {&__pyx_n_s_import_error, __pyx_k_import_error, sizeof(__pyx_k_import_error), 0, 0, 1, 1}, - {&__pyx_n_s_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 0, 1, 1}, - {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, - {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, - {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, - {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, - {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, - {&__pyx_kp_s_input_array_has_wrong_dimensions, __pyx_k_input_array_has_wrong_dimensions, sizeof(__pyx_k_input_array_has_wrong_dimensions), 0, 0, 1, 0}, - {&__pyx_kp_s_input_array_lengths_are_differen, __pyx_k_input_array_lengths_are_differen, sizeof(__pyx_k_input_array_lengths_are_differen), 0, 0, 1, 0}, - {&__pyx_kp_s_input_array_type_is_not_double, __pyx_k_input_array_type_is_not_double, sizeof(__pyx_k_input_array_type_is_not_double), 0, 0, 1, 0}, - {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1}, - {&__pyx_kp_s_input_arrays_2, __pyx_k_input_arrays_2, sizeof(__pyx_k_input_arrays_2), 0, 0, 1, 0}, - {&__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_k_input_arrays_parameter_missing_r, sizeof(__pyx_k_input_arrays_parameter_missing_r), 0, 0, 1, 0}, - {&__pyx_n_s_input_name, __pyx_k_input_name, sizeof(__pyx_k_input_name), 0, 0, 1, 1}, - {&__pyx_n_s_input_names, __pyx_k_input_names, sizeof(__pyx_k_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_input_price_series_names, __pyx_k_input_price_series_names, sizeof(__pyx_k_input_price_series_names), 0, 0, 1, 1}, - {&__pyx_n_s_input_price_series_names_2, __pyx_k_input_price_series_names_2, sizeof(__pyx_k_input_price_series_names_2), 0, 0, 1, 1}, - {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1}, - {&__pyx_kp_s_integer_values_are_100_0_or_100, __pyx_k_integer_values_are_100_0_or_100, sizeof(__pyx_k_integer_values_are_100_0_or_100), 0, 0, 1, 0}, - {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, - {&__pyx_n_s_is_empty, __pyx_k_is_empty, sizeof(__pyx_k_is_empty), 0, 0, 1, 1}, - {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, - {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, - {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, - {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, - {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, - {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, - {&__pyx_n_s_local, __pyx_k_local, sizeof(__pyx_k_local), 0, 0, 1, 1}, - {&__pyx_n_s_local_2, __pyx_k_local_2, sizeof(__pyx_k_local_2), 0, 0, 1, 1}, - {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, - {&__pyx_n_s_lookback, __pyx_k_lookback, sizeof(__pyx_k_lookback), 0, 0, 1, 1}, - {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1}, - {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1}, - {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, - {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, - {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, - {&__pyx_n_s_matype, __pyx_k_matype, sizeof(__pyx_k_matype), 0, 0, 1, 1}, - {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, - {&__pyx_n_s_max_int, __pyx_k_max_int, sizeof(__pyx_k_max_int), 0, 0, 1, 1}, - {&__pyx_n_s_maximum, __pyx_k_maximum, sizeof(__pyx_k_maximum), 0, 0, 1, 1}, - {&__pyx_n_s_maxperiod, __pyx_k_maxperiod, sizeof(__pyx_k_maxperiod), 0, 0, 1, 1}, - {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, - {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1}, - {&__pyx_n_s_min_int, __pyx_k_min_int, sizeof(__pyx_k_min_int), 0, 0, 1, 1}, - {&__pyx_n_s_minperiod, __pyx_k_minperiod, sizeof(__pyx_k_minperiod), 0, 0, 1, 1}, - {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1}, - {&__pyx_n_s_missing_keys, __pyx_k_missing_keys, sizeof(__pyx_k_missing_keys), 0, 0, 1, 1}, - {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, - {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1}, - {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, - {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, - {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, - {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, - {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 0, 1, 1}, - {&__pyx_n_s_nbdev, __pyx_k_nbdev, sizeof(__pyx_k_nbdev), 0, 0, 1, 1}, - {&__pyx_n_s_nbdevdn, __pyx_k_nbdevdn, sizeof(__pyx_k_nbdevdn), 0, 0, 1, 1}, - {&__pyx_n_s_nbdevup, __pyx_k_nbdevup, sizeof(__pyx_k_nbdevup), 0, 0, 1, 1}, - {&__pyx_n_s_no_existing_input_arrays, __pyx_k_no_existing_input_arrays, sizeof(__pyx_k_no_existing_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_num_inputs, __pyx_k_num_inputs, sizeof(__pyx_k_num_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_num_opt_inputs, __pyx_k_num_opt_inputs, sizeof(__pyx_k_num_opt_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, - {&__pyx_kp_s_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 0, 1, 0}, - {&__pyx_kp_s_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 0, 1, 0}, - {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, - {&__pyx_n_s_offsetonreverse, __pyx_k_offsetonreverse, sizeof(__pyx_k_offsetonreverse), 0, 0, 1, 1}, - {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, - {&__pyx_n_s_openInterest, __pyx_k_openInterest, sizeof(__pyx_k_openInterest), 0, 0, 1, 1}, - {&__pyx_n_s_optIn, __pyx_k_optIn, sizeof(__pyx_k_optIn), 0, 0, 1, 1}, - {&__pyx_n_s_opt_input, __pyx_k_opt_input, sizeof(__pyx_k_opt_input), 0, 0, 1, 1}, - {&__pyx_n_s_opt_input_values, __pyx_k_opt_input_values, sizeof(__pyx_k_opt_input_values), 0, 0, 1, 1}, - {&__pyx_n_s_opt_inputs, __pyx_k_opt_inputs, sizeof(__pyx_k_opt_inputs), 0, 0, 1, 1}, - {&__pyx_n_s_ordereddict, __pyx_k_ordereddict, sizeof(__pyx_k_ordereddict), 0, 0, 1, 1}, - {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1}, - {&__pyx_n_s_outaroondown, __pyx_k_outaroondown, sizeof(__pyx_k_outaroondown), 0, 0, 1, 1}, - {&__pyx_n_s_outaroonup, __pyx_k_outaroonup, sizeof(__pyx_k_outaroonup), 0, 0, 1, 1}, - {&__pyx_n_s_outbegidx, __pyx_k_outbegidx, sizeof(__pyx_k_outbegidx), 0, 0, 1, 1}, - {&__pyx_n_s_outfama, __pyx_k_outfama, sizeof(__pyx_k_outfama), 0, 0, 1, 1}, - {&__pyx_n_s_outfastd, __pyx_k_outfastd, sizeof(__pyx_k_outfastd), 0, 0, 1, 1}, - {&__pyx_n_s_outfastk, __pyx_k_outfastk, sizeof(__pyx_k_outfastk), 0, 0, 1, 1}, - {&__pyx_n_s_outinphase, __pyx_k_outinphase, sizeof(__pyx_k_outinphase), 0, 0, 1, 1}, - {&__pyx_n_s_outinteger, __pyx_k_outinteger, sizeof(__pyx_k_outinteger), 0, 0, 1, 1}, - {&__pyx_n_s_outinteger_data, __pyx_k_outinteger_data, sizeof(__pyx_k_outinteger_data), 0, 0, 1, 1}, - {&__pyx_n_s_outleadsine, __pyx_k_outleadsine, sizeof(__pyx_k_outleadsine), 0, 0, 1, 1}, - {&__pyx_n_s_outmacd, __pyx_k_outmacd, sizeof(__pyx_k_outmacd), 0, 0, 1, 1}, - {&__pyx_n_s_outmacdhist, __pyx_k_outmacdhist, sizeof(__pyx_k_outmacdhist), 0, 0, 1, 1}, - {&__pyx_n_s_outmacdsignal, __pyx_k_outmacdsignal, sizeof(__pyx_k_outmacdsignal), 0, 0, 1, 1}, - {&__pyx_n_s_outmama, __pyx_k_outmama, sizeof(__pyx_k_outmama), 0, 0, 1, 1}, - {&__pyx_n_s_outmax, __pyx_k_outmax, sizeof(__pyx_k_outmax), 0, 0, 1, 1}, - {&__pyx_n_s_outmaxidx, __pyx_k_outmaxidx, sizeof(__pyx_k_outmaxidx), 0, 0, 1, 1}, - {&__pyx_n_s_outmaxidx_data, __pyx_k_outmaxidx_data, sizeof(__pyx_k_outmaxidx_data), 0, 0, 1, 1}, - {&__pyx_n_s_outmin, __pyx_k_outmin, sizeof(__pyx_k_outmin), 0, 0, 1, 1}, - {&__pyx_n_s_outminidx, __pyx_k_outminidx, sizeof(__pyx_k_outminidx), 0, 0, 1, 1}, - {&__pyx_n_s_outminidx_data, __pyx_k_outminidx_data, sizeof(__pyx_k_outminidx_data), 0, 0, 1, 1}, - {&__pyx_n_s_outnbelement, __pyx_k_outnbelement, sizeof(__pyx_k_outnbelement), 0, 0, 1, 1}, - {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, - {&__pyx_n_s_output_flags, __pyx_k_output_flags, sizeof(__pyx_k_output_flags), 0, 0, 1, 1}, - {&__pyx_n_s_output_name, __pyx_k_output_name, sizeof(__pyx_k_output_name), 0, 0, 1, 1}, - {&__pyx_n_s_output_names, __pyx_k_output_names, sizeof(__pyx_k_output_names), 0, 0, 1, 1}, - {&__pyx_n_s_outputs, __pyx_k_outputs, sizeof(__pyx_k_outputs), 0, 0, 1, 1}, - {&__pyx_n_s_outputs_valid, __pyx_k_outputs_valid, sizeof(__pyx_k_outputs_valid), 0, 0, 1, 1}, - {&__pyx_n_s_outquadrature, __pyx_k_outquadrature, sizeof(__pyx_k_outquadrature), 0, 0, 1, 1}, - {&__pyx_n_s_outreal, __pyx_k_outreal, sizeof(__pyx_k_outreal), 0, 0, 1, 1}, - {&__pyx_n_s_outreallowerband, __pyx_k_outreallowerband, sizeof(__pyx_k_outreallowerband), 0, 0, 1, 1}, - {&__pyx_n_s_outrealmiddleband, __pyx_k_outrealmiddleband, sizeof(__pyx_k_outrealmiddleband), 0, 0, 1, 1}, - {&__pyx_n_s_outrealupperband, __pyx_k_outrealupperband, sizeof(__pyx_k_outrealupperband), 0, 0, 1, 1}, - {&__pyx_n_s_outsine, __pyx_k_outsine, sizeof(__pyx_k_outsine), 0, 0, 1, 1}, - {&__pyx_n_s_outslowd, __pyx_k_outslowd, sizeof(__pyx_k_outslowd), 0, 0, 1, 1}, - {&__pyx_n_s_outslowk, __pyx_k_outslowk, sizeof(__pyx_k_outslowk), 0, 0, 1, 1}, - {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1}, - {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1}, - {&__pyx_n_s_param_name, __pyx_k_param_name, sizeof(__pyx_k_param_name), 0, 0, 1, 1}, - {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 0, 1, 1}, - {&__pyx_n_s_penetration, __pyx_k_penetration, sizeof(__pyx_k_penetration), 0, 0, 1, 1}, - {&__pyx_n_s_period, __pyx_k_period, sizeof(__pyx_k_period), 0, 0, 1, 1}, - {&__pyx_n_s_periods, __pyx_k_periods, sizeof(__pyx_k_periods), 0, 0, 1, 1}, - {&__pyx_n_s_polars, __pyx_k_polars, sizeof(__pyx_k_polars), 0, 0, 1, 1}, - {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, - {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, - {&__pyx_n_s_price, __pyx_k_price, sizeof(__pyx_k_price), 0, 0, 1, 1}, - {&__pyx_n_s_price0, __pyx_k_price0, sizeof(__pyx_k_price0), 0, 0, 1, 1}, - {&__pyx_n_s_price1, __pyx_k_price1, sizeof(__pyx_k_price1), 0, 0, 1, 1}, - {&__pyx_n_s_price_series, __pyx_k_price_series, sizeof(__pyx_k_price_series), 0, 0, 1, 1}, - {&__pyx_n_s_price_series_name_values, __pyx_k_price_series_name_values, sizeof(__pyx_k_price_series_name_values), 0, 0, 1, 1}, - {&__pyx_n_s_prices, __pyx_k_prices, sizeof(__pyx_k_prices), 0, 0, 1, 1}, - {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1}, - {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, - {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, - {&__pyx_n_s_rangetype, __pyx_k_rangetype, sizeof(__pyx_k_rangetype), 0, 0, 1, 1}, - {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1}, - {&__pyx_n_s_real0, __pyx_k_real0, sizeof(__pyx_k_real0), 0, 0, 1, 1}, - {&__pyx_n_s_real1, __pyx_k_real1, sizeof(__pyx_k_real1), 0, 0, 1, 1}, - {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, - {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1}, - {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, - {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, - {&__pyx_n_s_retCode, __pyx_k_retCode, sizeof(__pyx_k_retCode), 0, 0, 1, 1}, - {&__pyx_n_s_ret_code, __pyx_k_ret_code, sizeof(__pyx_k_ret_code), 0, 0, 1, 1}, - {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, - {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, - {&__pyx_kp_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 0}, - {&__pyx_kp_s_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 0, 1, 0}, - {&__pyx_kp_s_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 0, 1, 0}, - {&__pyx_kp_s_s_function_failed_with_error_co, __pyx_k_s_function_failed_with_error_co, sizeof(__pyx_k_s_function_failed_with_error_co), 0, 0, 1, 0}, - {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0}, - {&__pyx_kp_s_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 0, 1, 0}, - {&__pyx_n_s_schema, __pyx_k_schema, sizeof(__pyx_k_schema), 0, 0, 1, 1}, - {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, - {&__pyx_n_s_series, __pyx_k_series, sizeof(__pyx_k_series), 0, 0, 1, 1}, - {&__pyx_n_s_set_function_args, __pyx_k_set_function_args, sizeof(__pyx_k_set_function_args), 0, 0, 1, 1}, - {&__pyx_n_s_set_input_arrays, __pyx_k_set_input_arrays, sizeof(__pyx_k_set_input_arrays), 0, 0, 1, 1}, - {&__pyx_n_s_set_input_names, __pyx_k_set_input_names, sizeof(__pyx_k_set_input_names), 0, 0, 1, 1}, - {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, - {&__pyx_n_s_set_parameters, __pyx_k_set_parameters, sizeof(__pyx_k_set_parameters), 0, 0, 1, 1}, - {&__pyx_n_s_settingtype, __pyx_k_settingtype, sizeof(__pyx_k_settingtype), 0, 0, 1, 1}, - {&__pyx_n_s_signalmatype, __pyx_k_signalmatype, sizeof(__pyx_k_signalmatype), 0, 0, 1, 1}, - {&__pyx_n_s_signalperiod, __pyx_k_signalperiod, sizeof(__pyx_k_signalperiod), 0, 0, 1, 1}, - {&__pyx_n_s_skip_first, __pyx_k_skip_first, sizeof(__pyx_k_skip_first), 0, 0, 1, 1}, - {&__pyx_n_s_slowd_matype, __pyx_k_slowd_matype, sizeof(__pyx_k_slowd_matype), 0, 0, 1, 1}, - {&__pyx_n_s_slowd_period, __pyx_k_slowd_period, sizeof(__pyx_k_slowd_period), 0, 0, 1, 1}, - {&__pyx_n_s_slowk_matype, __pyx_k_slowk_matype, sizeof(__pyx_k_slowk_matype), 0, 0, 1, 1}, - {&__pyx_n_s_slowk_period, __pyx_k_slowk_period, sizeof(__pyx_k_slowk_period), 0, 0, 1, 1}, - {&__pyx_n_s_slowlimit, __pyx_k_slowlimit, sizeof(__pyx_k_slowlimit), 0, 0, 1, 1}, - {&__pyx_n_s_slowmatype, __pyx_k_slowmatype, sizeof(__pyx_k_slowmatype), 0, 0, 1, 1}, - {&__pyx_n_s_slowperiod, __pyx_k_slowperiod, sizeof(__pyx_k_slowperiod), 0, 0, 1, 1}, - {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, - {&__pyx_n_s_startvalue, __pyx_k_startvalue, sizeof(__pyx_k_startvalue), 0, 0, 1, 1}, - {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1}, - {&__pyx_n_s_str2bytes, __pyx_k_str2bytes, sizeof(__pyx_k_str2bytes), 0, 0, 1, 1}, - {&__pyx_kp_s_stream__s, __pyx_k_stream__s, sizeof(__pyx_k_stream__s), 0, 0, 1, 0}, - {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, - {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, - {&__pyx_n_s_ta_check_success, __pyx_k_ta_check_success, sizeof(__pyx_k_ta_check_success), 0, 0, 1, 1}, - {&__pyx_n_s_ta_func_unst_ids, __pyx_k_ta_func_unst_ids, sizeof(__pyx_k_ta_func_unst_ids), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getFuncInfo, __pyx_k_ta_getFuncInfo, sizeof(__pyx_k_ta_getFuncInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getFuncTable, __pyx_k_ta_getFuncTable, sizeof(__pyx_k_ta_getFuncTable), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getGroupTable, __pyx_k_ta_getGroupTable, sizeof(__pyx_k_ta_getGroupTable), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getInputParameterInfo, __pyx_k_ta_getInputParameterInfo, sizeof(__pyx_k_ta_getInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getOptInputParameterInfo, __pyx_k_ta_getOptInputParameterInfo, sizeof(__pyx_k_ta_getOptInputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_getOutputParameterInfo, __pyx_k_ta_getOutputParameterInfo, sizeof(__pyx_k_ta_getOutputParameterInfo), 0, 0, 1, 1}, - {&__pyx_n_s_ta_get_compatibility, __pyx_k_ta_get_compatibility, sizeof(__pyx_k_ta_get_compatibility), 0, 0, 1, 1}, - {&__pyx_n_s_ta_get_unstable_period, __pyx_k_ta_get_unstable_period, sizeof(__pyx_k_ta_get_unstable_period), 0, 0, 1, 1}, - {&__pyx_n_s_ta_initialize, __pyx_k_ta_initialize, sizeof(__pyx_k_ta_initialize), 0, 0, 1, 1}, - {&__pyx_n_s_ta_restore_candle_default_setti, __pyx_k_ta_restore_candle_default_setti, sizeof(__pyx_k_ta_restore_candle_default_setti), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_candle_settings, __pyx_k_ta_set_candle_settings, sizeof(__pyx_k_ta_set_candle_settings), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_compatibility, __pyx_k_ta_set_compatibility, sizeof(__pyx_k_ta_set_compatibility), 0, 0, 1, 1}, - {&__pyx_n_s_ta_set_unstable_period, __pyx_k_ta_set_unstable_period, sizeof(__pyx_k_ta_set_unstable_period), 0, 0, 1, 1}, - {&__pyx_n_s_ta_shutdown, __pyx_k_ta_shutdown, sizeof(__pyx_k_ta_shutdown), 0, 0, 1, 1}, - {&__pyx_n_s_ta_version, __pyx_k_ta_version, sizeof(__pyx_k_ta_version), 0, 0, 1, 1}, - {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1}, - {&__pyx_kp_s_talib__abstract_pxi, __pyx_k_talib__abstract_pxi, sizeof(__pyx_k_talib__abstract_pxi), 0, 0, 1, 0}, - {&__pyx_kp_s_talib__common_pxi, __pyx_k_talib__common_pxi, sizeof(__pyx_k_talib__common_pxi), 0, 0, 1, 0}, - {&__pyx_kp_s_talib__func_pxi, __pyx_k_talib__func_pxi, sizeof(__pyx_k_talib__func_pxi), 0, 0, 1, 0}, - {&__pyx_n_s_talib__ta_lib, __pyx_k_talib__ta_lib, sizeof(__pyx_k_talib__ta_lib), 0, 0, 1, 1}, - {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, - {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1}, - {&__pyx_n_s_timeStamp, __pyx_k_timeStamp, sizeof(__pyx_k_timeStamp), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod, __pyx_k_timeperiod, sizeof(__pyx_k_timeperiod), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod1, __pyx_k_timeperiod1, sizeof(__pyx_k_timeperiod1), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod2, __pyx_k_timeperiod2, sizeof(__pyx_k_timeperiod2), 0, 0, 1, 1}, - {&__pyx_n_s_timeperiod3, __pyx_k_timeperiod3, sizeof(__pyx_k_timeperiod3), 0, 0, 1, 1}, - {&__pyx_n_s_to_numpy, __pyx_k_to_numpy, sizeof(__pyx_k_to_numpy), 0, 0, 1, 1}, - {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1}, - {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1}, - {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1}, - {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, - {&__pyx_n_s_update_info, __pyx_k_update_info, sizeof(__pyx_k_update_info), 0, 0, 1, 1}, - {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1}, - {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, - {&__pyx_n_s_value_range, __pyx_k_value_range, sizeof(__pyx_k_value_range), 0, 0, 1, 1}, - {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, - {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, - {&__pyx_n_s_vfactor, __pyx_k_vfactor, sizeof(__pyx_k_vfactor), 0, 0, 1, 1}, - {&__pyx_n_s_volume, __pyx_k_volume, sizeof(__pyx_k_volume), 0, 0, 1, 1}, - {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1}, - {0, 0, 0, 0, 0, 0, 0} - }; - return __Pyx_InitStrings(__pyx_string_tab); -} -/* #### Code section: cached_builtins ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { - __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 60, __pyx_L1_error) - __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 82, __pyx_L1_error) - __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 8, __pyx_L1_error) - __pyx_builtin_NameError = __Pyx_GetBuiltinName(__pyx_n_s_NameError); if (!__pyx_builtin_NameError) __PYX_ERR(1, 43, __pyx_L1_error) - __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 130, __pyx_L1_error) - #if PY_MAJOR_VERSION >= 3 - __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) - #else - __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) - #endif - __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 436, __pyx_L1_error) - __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 440, __pyx_L1_error) - __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_n_s_min); if (!__pyx_builtin_min) __PYX_ERR(1, 598, __pyx_L1_error) - __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(1, 599, __pyx_L1_error) - return 0; + /* function exit code */ + goto __pyx_L0; __pyx_L1_error:; - return -1; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; } -/* #### Code section: cached_constants ### */ -static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { +static PyObject *__pyx_pf_5talib_7_ta_lib_358stream_ACOS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ACOS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); - /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025 - * __pyx_import_array() - * except Exception: - * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_umath() except -1: + /* "talib/_stream.pxi":28 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] */ - __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(2, 1025, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple_); - __Pyx_GIVEREF(__pyx_tuple_); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 - * _import_umath() - * except Exception: - * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<< - * - * cdef inline int import_ufunc() except -1: + /* "talib/_stream.pxi":29 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN */ - __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(2, 1031, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__2); - __Pyx_GIVEREF(__pyx_tuple__2); + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - /* "talib/_func.pxi":22 - * cdef np.ndarray check_array(np.ndarray real): - * if PyArray_TYPE(real) != np.NPY_DOUBLE: - * raise Exception("input array type is not double") # <<<<<<<<<<<<<< - * if real.ndim != 1: - * raise Exception("input array has wrong dimensions") + /* "talib/_stream.pxi":30 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_type_is_not_double); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(3, 22, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__3); - __Pyx_GIVEREF(__pyx_tuple__3); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - /* "talib/_func.pxi":24 - * raise Exception("input array type is not double") - * if real.ndim != 1: - * raise Exception("input array has wrong dimensions") # <<<<<<<<<<<<<< - * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): - * real = PyArray_GETCONTIGUOUS(real) + /* "talib/_stream.pxi":31 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ACOS", retCode) */ - __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_wrong_dimensions); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(3, 24, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__4); - __Pyx_GIVEREF(__pyx_tuple__4); + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":34 - * length = a1.shape[0] - * if length != a2.shape[0]: - * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< - * return length - * + /* "talib/_stream.pxi":32 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ACOS", retCode) + * return outreal */ - __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_input_array_lengths_are_differen); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(3, 34, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__5); - __Pyx_GIVEREF(__pyx_tuple__5); + __pyx_v_retCode = TA_ACOS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_abstract.pxi":679 - * name = name[len('in'):].lower() - * if 'real' in name: - * name = name.replace('real', 'price') # <<<<<<<<<<<<<< - * elif 'price' in name: - * name = 'prices' + /* "talib/_stream.pxi":33 + * outreal = NaN + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ACOS", retCode) # <<<<<<<<<<<<<< + * return outreal + * */ - __pyx_tuple__8 = PyTuple_Pack(2, __pyx_n_s_real, __pyx_n_s_price); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 679, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__8); - __Pyx_GIVEREF(__pyx_tuple__8); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ACOS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 33, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_common.pxi":6 - * __ta_version__ = lib.TA_GetVersionString() + /* "talib/_stream.pxi":34 + * retCode = lib.TA_ACOS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ACOS", retCode) + * return outreal # <<<<<<<<<<<<<< * - * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< - * if ret_code == 0: - * return True + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_s_function_name, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__13); - __Pyx_GIVEREF(__pyx_tuple__13); - __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_check_success, 6, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_common.pxi":50 - * function_name, ret_code, description)) + /* "talib/_stream.pxi":9 + * np.import_array() # Initialize the NumPy C API * - * def _ta_initialize(): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_Initialize() + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ACOS( np.ndarray real not None ): */ - __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__15); - __Pyx_GIVEREF(__pyx_tuple__15); - __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_initialize, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 50, __pyx_L1_error) - /* "talib/_common.pxi":55 - * _ta_check_success('TA_Initialize', ret_code) + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ACOS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":36 + * return outreal * - * def _ta_shutdown(): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_Shutdown() + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): */ - __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_shutdown, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 55, __pyx_L1_error) - /* "talib/_common.pxi":60 - * _ta_check_success('TA_Shutdown', ret_code) - * - * class MA_Type(object): # <<<<<<<<<<<<<< - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) - * - */ - __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__18); - __Pyx_GIVEREF(__pyx_tuple__18); - __pyx_tuple__19 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__19); - __Pyx_GIVEREF(__pyx_tuple__19); - - /* "talib/_common.pxi":61 - * - * class MA_Type(object): - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< - * - * def __init__(self): - */ - __pyx_tuple__20 = PyTuple_Pack(1, __pyx_int_9); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__20); - __Pyx_GIVEREF(__pyx_tuple__20); - - /* "talib/_common.pxi":63 - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) - * - * def __init__(self): # <<<<<<<<<<<<<< - * self._lookup = { - * MA_Type.SMA: 'Simple Moving Average', - */ - __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__21); - __Pyx_GIVEREF(__pyx_tuple__21); - __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_init, 63, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 63, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_360stream_AD, " AD(high, low, close, volume)\n\n Chaikin A/D Line (Volume Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_361stream_AD = {"stream_AD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_361stream_AD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_360stream_AD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_361stream_AD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_AD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 1); __PYX_ERR(4, 36, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 2); __PYX_ERR(4, 36, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 36, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AD", 1, 4, 4, 3); __PYX_ERR(4, 36, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AD") < 0)) __PYX_ERR(4, 36, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_AD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 36, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 38, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 38, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 38, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 38, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_360stream_AD(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume); - /* "talib/_common.pxi":76 - * } - * - * def __getitem__(self, type_): # <<<<<<<<<<<<<< - * return self._lookup[type_] - * - */ - __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__23); - __Pyx_GIVEREF(__pyx_tuple__23); - __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_getitem, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 76, __pyx_L1_error) + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_common.pxi":90 - * _ta_func_unst_ids[name] = i - * - * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] - */ - __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_ret_code, __pyx_n_s_id); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__25); - __Pyx_GIVEREF(__pyx_tuple__25); - __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_unstable_period, 90, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 90, __pyx_L1_error) +static PyObject *__pyx_pf_5talib_7_ta_lib_360stream_AD(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + double *__pyx_v_volume_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_AD", 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); - /* "talib/_common.pxi":96 - * _ta_check_success('TA_SetUnstablePeriod', ret_code) - * - * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< - * cdef unsigned int period - * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + /* "talib/_stream.pxi":58 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_id); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__27); - __Pyx_GIVEREF(__pyx_tuple__27); - __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_unstable_period, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 96, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 58, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":102 - * return period - * - * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_SetCompatibility(value) + /* "talib/_stream.pxi":59 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__29); - __Pyx_GIVEREF(__pyx_tuple__29); - __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_compatibility, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 102, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_common.pxi":107 - * _ta_check_success('TA_SetCompatibility', ret_code) - * - * def _ta_get_compatibility(): # <<<<<<<<<<<<<< - * cdef int value - * value = lib.TA_GetCompatibility() + /* "talib/_stream.pxi":60 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__31); - __Pyx_GIVEREF(__pyx_tuple__31); - __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_compatibility, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 107, __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(4, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":112 - * return value - * - * class CandleSettingType(object): # <<<<<<<<<<<<<< - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + /* "talib/_stream.pxi":61 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_tuple__33 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__33); - __Pyx_GIVEREF(__pyx_tuple__33); - __pyx_tuple__34 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__34); - __Pyx_GIVEREF(__pyx_tuple__34); + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_common.pxi":115 - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ - * range(12) # <<<<<<<<<<<<<< - * - * CandleSettingType = CandleSettingType() + /* "talib/_stream.pxi":62 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * volume = check_array(volume) */ - __pyx_tuple__35 = PyTuple_Pack(1, __pyx_int_12); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__35); - __Pyx_GIVEREF(__pyx_tuple__35); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 62, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":119 - * CandleSettingType = CandleSettingType() - * - * class RangeType(object): # <<<<<<<<<<<<<< - * RealBody, HighLow, Shadows = range(3) - * + /* "talib/_stream.pxi":63 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * volume = check_array(volume) + * volume_data = volume.data */ - __pyx_tuple__36 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__36); - __Pyx_GIVEREF(__pyx_tuple__36); - __pyx_tuple__37 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__37); - __Pyx_GIVEREF(__pyx_tuple__37); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_common.pxi":120 - * - * class RangeType(object): - * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< - * - * RangeType = RangeType() + /* "talib/_stream.pxi":64 + * close = check_array(close) + * close_data = close.data + * volume = check_array(volume) # <<<<<<<<<<<<<< + * volume_data = volume.data + * length = check_length4(high, low, close, volume) */ - __pyx_tuple__38 = PyTuple_Pack(1, __pyx_int_3); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__38); - __Pyx_GIVEREF(__pyx_tuple__38); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 64, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":124 - * RangeType = RangeType() - * - * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + /* "talib/_stream.pxi":65 + * close_data = close.data + * volume = check_array(volume) + * volume_data = volume.data # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * outreal = NaN */ - __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_settingtype, __pyx_n_s_rangetype, __pyx_n_s_avgperiod, __pyx_n_s_factor, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__39); - __Pyx_GIVEREF(__pyx_tuple__39); - __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_candle_settings, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 124, __pyx_L1_error) + __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - /* "talib/_common.pxi":129 - * _ta_check_success('TA_SetCandleSettings', ret_code) - * - * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + /* "talib/_stream.pxi":66 + * volume = check_array(volume) + * volume_data = volume.data + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_settingtype, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__41); - __Pyx_GIVEREF(__pyx_tuple__41); - __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_restore_candle_default_setti, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 129, __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(4, 66, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":142 - * - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ACOS( np.ndarray real not None ): + /* "talib/_stream.pxi":67 + * volume_data = volume.data + * length = check_length4(high, low, close, volume) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AD", retCode) */ - __pyx_tuple__44 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__44); - __Pyx_GIVEREF(__pyx_tuple__44); - __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ACOS, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(3, 142, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":171 + /* "talib/_stream.pxi":68 + * length = check_length4(high, low, close, volume) + * outreal = NaN + * retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AD", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): */ - __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__46); - __Pyx_GIVEREF(__pyx_tuple__46); - __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AD, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(3, 171, __pyx_L1_error) + __pyx_v_retCode = TA_AD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":203 + /* "talib/_stream.pxi":69 + * outreal = NaN + * retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AD", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): */ - __pyx_tuple__48 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__48); - __Pyx_GIVEREF(__pyx_tuple__48); - __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADD, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(3, 203, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":234 - * return outreal + /* "talib/_stream.pxi":70 + * retCode = lib.TA_AD( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AD", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADOSC( 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 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__50 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__50); - __Pyx_GIVEREF(__pyx_tuple__50); - __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADOSC, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 70, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":269 + /* "talib/_stream.pxi":36 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + * def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): */ - __pyx_tuple__52 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__52); - __Pyx_GIVEREF(__pyx_tuple__52); - __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADX, 269, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(3, 269, __pyx_L1_error) - /* "talib/_func.pxi":302 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADXR, 302, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(3, 302, __pyx_L1_error) + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_AD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":335 +/* "talib/_stream.pxi":72 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + * def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): */ - __pyx_tuple__55 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__55); - __Pyx_GIVEREF(__pyx_tuple__55); - __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_APO, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(3, 335, __pyx_L1_error) - /* "talib/_func.pxi":368 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - */ - __pyx_tuple__57 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__57); - __Pyx_GIVEREF(__pyx_tuple__57); - __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROON, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(3, 368, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_362stream_ADD, " ADD(real0, real1)\n\n Vector Arithmetic Add (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_363stream_ADD = {"stream_ADD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_363stream_ADD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_362stream_ADD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_363stream_ADD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ADD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 72, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 72, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, 1); __PYX_ERR(4, 72, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADD") < 0)) __PYX_ERR(4, 72, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ADD", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 72, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 74, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 74, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_362stream_ADD(__pyx_self, __pyx_v_real0, __pyx_v_real1); - /* "talib/_func.pxi":403 - * return outaroondown , outaroonup - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - */ - __pyx_tuple__59 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__59); - __Pyx_GIVEREF(__pyx_tuple__59); - __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(3, 403, __pyx_L1_error) + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":435 - * 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 ): +static PyObject *__pyx_pf_5talib_7_ta_lib_362stream_ADD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ADD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":93 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) */ - __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ASIN, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(3, 435, __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(4, 93, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":464 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ATAN( np.ndarray real not None ): + /* "talib/_stream.pxi":94 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data */ - __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATAN, 464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(3, 464, __pyx_L1_error) + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - /* "talib/_func.pxi":493 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":95 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) */ - __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(3, 493, __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(4, 95, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":526 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":96 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN */ - __pyx_tuple__64 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__64); - __Pyx_GIVEREF(__pyx_tuple__64); - __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AVGPRICE, 526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(3, 526, __pyx_L1_error) + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - /* "talib/_func.pxi":558 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + /* "talib/_stream.pxi":97 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__66 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__66); - __Pyx_GIVEREF(__pyx_tuple__66); - __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(3, 558, __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(4, 97, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":598 - * return outrealupperband , outrealmiddleband , outreallowerband - * - * @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 ): + /* "talib/_stream.pxi":98 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADD", retCode) */ - __pyx_tuple__68 = PyTuple_Pack(11, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__68); - __Pyx_GIVEREF(__pyx_tuple__68); - __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BETA, 598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(3, 598, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":631 + /* "talib/_stream.pxi":99 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADD", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BOP, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(3, 631, __pyx_L1_error) + __pyx_v_retCode = TA_ADD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":663 + /* "talib/_stream.pxi":100 + * outreal = NaN + * retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADD", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(3, 663, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":696 - * return outreal + /* "talib/_stream.pxi":101 + * retCode = lib.TA_ADD( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADD", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__72 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__72); - __Pyx_GIVEREF(__pyx_tuple__72); - __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":728 - * return outinteger + /* "talib/_stream.pxi":72 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): */ - __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3BLACKCROWS, 728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 728, __pyx_L1_error) - /* "talib/_func.pxi":760 - * return outinteger + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ADD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":103 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADOSC( 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 ): */ - __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 760, __pyx_L1_error) - /* "talib/_func.pxi":792 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_364stream_ADOSC, " ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?])\n\n Chaikin A/D Oscillator (Volume Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Parameters:\n fastperiod: 3\n slowperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_365stream_ADOSC = {"stream_ADOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_365stream_ADOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_364stream_ADOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_365stream_ADOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_fastperiod; + int __pyx_v_slowperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_ADOSC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 1); __PYX_ERR(4, 103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 2); __PYX_ERR(4, 103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, 3); __PYX_ERR(4, 103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 103, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADOSC") < 0)) __PYX_ERR(4, 103, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_fastperiod = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 105, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 105, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ADOSC", 0, 4, 6, __pyx_nargs); __PYX_ERR(4, 103, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 105, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 105, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 105, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 105, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_364stream_ADOSC(__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; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_364stream_ADOSC(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + double *__pyx_v_volume_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ADOSC", 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); + + /* "talib/_stream.pxi":128 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(3, 792, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 128, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":824 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":129 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 824, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":856 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":130 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3STARSINSOUTH, 856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 856, __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(4, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":888 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":131 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 888, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":920 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + /* "talib/_stream.pxi":132 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * volume = check_array(volume) */ - __pyx_tuple__80 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__80); - __Pyx_GIVEREF(__pyx_tuple__80); - __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 920, __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(4, 132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":954 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":133 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * volume = check_array(volume) + * volume_data = volume.data */ - __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 954, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":986 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":134 + * close = check_array(close) + * close_data = close.data + * volume = check_array(volume) # <<<<<<<<<<<<<< + * volume_data = volume.data + * length = check_length4(high, low, close, volume) */ - __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 986, __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(4, 134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1018 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":135 + * close_data = close.data + * volume = check_array(volume) + * volume_data = volume.data # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * outreal = NaN */ - __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(3, 1018, __pyx_L1_error) + __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); - /* "talib/_func.pxi":1050 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":136 + * volume = check_array(volume) + * volume_data = volume.data + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 1050, __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(4, 136, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":1082 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":137 + * volume_data = volume.data + * length = check_length4(high, low, close, volume) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADOSC", retCode) */ - __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 1082, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":1114 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":138 + * length = check_length4(high, low, close, volume) + * outreal = NaN + * retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADOSC", retCode) + * return outreal */ - __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1114, __pyx_L1_error) + __pyx_v_retCode = TA_ADOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_fastperiod, __pyx_v_slowperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":1146 - * return outinteger + /* "talib/_stream.pxi":139 + * outreal = NaN + * retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADOSC", retCode) # <<<<<<<<<<<<<< + * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): */ - __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 1146, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":1180 - * return outinteger + /* "talib/_stream.pxi":140 + * retCode = lib.TA_ADOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , fastperiod , slowperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADOSC", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1180, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 140, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":1212 - * return outinteger + /* "talib/_stream.pxi":103 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADOSC( 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 ): */ - __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 1212, __pyx_L1_error) - /* "talib/_func.pxi":1244 - * return outinteger + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ADOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":142 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1244, __pyx_L1_error) - /* "talib/_func.pxi":1276 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 1276, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_366stream_ADX, " ADX(high, low, close[, timeperiod=?])\n\n Average Directional Movement Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_367stream_ADX = {"stream_ADX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_367stream_ADX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_366stream_ADX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_367stream_ADX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ADX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 1); __PYX_ERR(4, 142, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, 2); __PYX_ERR(4, 142, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 142, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADX") < 0)) __PYX_ERR(4, 142, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 144, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ADX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 142, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 144, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 144, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_366stream_ADX(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); - /* "talib/_func.pxi":1308 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_366stream_ADX(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ADX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":165 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(3, 1308, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1342 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + /* "talib/_stream.pxi":166 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 1342, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":1376 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":167 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(3, 1376, __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(4, 167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1408 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":168 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 1408, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":1440 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":169 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) */ - __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(3, 1440, __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(4, 169, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1472 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":170 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN */ - __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(3, 1472, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":1504 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":171 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(3, 1504, __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(4, 171, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":1536 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":172 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADX", retCode) */ - __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(3, 1536, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":1568 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":173 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADX", retCode) + * return outreal */ - __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 1568, __pyx_L1_error) + __pyx_v_retCode = TA_ADX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":1600 - * return outinteger + /* "talib/_stream.pxi":174 + * outreal = NaN + * retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADX", retCode) # <<<<<<<<<<<<<< + * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 1600, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 174, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":1632 - * return outinteger + /* "talib/_stream.pxi":175 + * retCode = lib.TA_ADX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADX", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(3, 1632, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":1664 - * return outinteger + /* "talib/_stream.pxi":142 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(3, 1664, __pyx_L1_error) - /* "talib/_func.pxi":1696 - * return outinteger + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ADX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":177 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(3, 1696, __pyx_L1_error) - /* "talib/_func.pxi":1728 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_368stream_ADXR, " ADXR(high, low, close[, timeperiod=?])\n\n Average Directional Movement Index Rating (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_369stream_ADXR = {"stream_ADXR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_369stream_ADXR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_368stream_ADXR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_369stream_ADXR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ADXR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 1); __PYX_ERR(4, 177, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, 2); __PYX_ERR(4, 177, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 177, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ADXR") < 0)) __PYX_ERR(4, 177, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 179, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ADXR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 177, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 179, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 179, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 179, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_368stream_ADXR(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_368stream_ADXR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ADXR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":200 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(3, 1728, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 200, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1760 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":201 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(3, 1760, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":1792 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":202 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 1792, __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(4, 202, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1824 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":203 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(3, 1824, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":1856 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":204 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) */ - __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 1856, __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(4, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1888 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":205 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN */ - __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(3, 1888, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":1920 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":206 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 1920, __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(4, 206, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":1952 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":207 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ADXR", retCode) */ - __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMARUBOZU, 1952, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(3, 1952, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":1984 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":208 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ADXR", retCode) + * return outreal */ - __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATCHINGLOW, 1984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(3, 1984, __pyx_L1_error) + __pyx_v_retCode = TA_ADXR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":2016 - * return outinteger + /* "talib/_stream.pxi":209 + * outreal = NaN + * retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _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 CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): */ - __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2016, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 2016, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ADXR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":2050 - * return outinteger + /* "talib/_stream.pxi":210 + * retCode = lib.TA_ADXR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _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 CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":2084 - * return outinteger + /* "talib/_stream.pxi":177 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + * def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(3, 2084, __pyx_L1_error) - /* "talib/_func.pxi":2118 - * return outinteger + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ADXR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":212 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): */ - __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 2118, __pyx_L1_error) - /* "talib/_func.pxi":2150 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_370stream_APO, " APO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n Absolute Price Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_371stream_APO = {"stream_APO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_371stream_APO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_370stream_APO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_371stream_APO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + 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("stream_APO (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 212, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_APO") < 0)) __PYX_ERR(4, 212, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 214, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_APO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 212, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 214, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_370stream_APO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_370stream_APO(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_APO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":235 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] */ - __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(3, 2150, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2182 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":236 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN */ - __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 2182, __pyx_L1_error) + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - /* "talib/_func.pxi":2214 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":237 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRISEFALL3METHODS, 2214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(3, 2214, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - /* "talib/_func.pxi":2246 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":238 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_APO", retCode) */ - __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSEPARATINGLINES, 2246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 2246, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":2278 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":239 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_APO", retCode) + * return outreal */ - __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHOOTINGSTAR, 2278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(3, 2278, __pyx_L1_error) + __pyx_v_retCode = TA_APO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":2310 - * return outinteger + /* "talib/_stream.pxi":240 + * outreal = NaN + * retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_APO", retCode) # <<<<<<<<<<<<<< + * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHORTLINE, 2310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(3, 2310, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_APO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 240, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":2342 - * return outinteger + /* "talib/_stream.pxi":241 + * retCode = lib.TA_APO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_APO", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSPINNINGTOP, 2342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 2342, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":2374 - * return outinteger + /* "talib/_stream.pxi":212 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): */ - __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTALLEDPATTERN, 2374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 2374, __pyx_L1_error) - /* "talib/_func.pxi":2406 - * return outinteger + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_APO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":243 + * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 2406, __pyx_L1_error) - /* "talib/_func.pxi":2438 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_AROON(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_372stream_AROON, " AROON(high, low[, timeperiod=?])\n\n Aroon (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n aroondown\n aroonup\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_373stream_AROON = {"stream_AROON", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_373stream_AROON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_372stream_AROON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_373stream_AROON(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_AROON (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, 1); __PYX_ERR(4, 243, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 243, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AROON") < 0)) __PYX_ERR(4, 243, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 245, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_AROON", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 243, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 245, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 245, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_372stream_AROON(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_372stream_AROON(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outaroondown; + double __pyx_v_outaroonup; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __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("stream_AROON", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":267 + * double outaroondown + * double outaroonup + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 2438, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2470 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":268 + * double outaroonup + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2470, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 2470, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":2502 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":269 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) */ - __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 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(4, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2534 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":270 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outaroondown = NaN */ - __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 2534, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":2566 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":271 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outaroondown = NaN + * outaroonup = NaN */ - __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 2566, __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(4, 271, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":2598 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":272 + * low_data = low.data + * length = check_length2(high, low) + * outaroondown = NaN # <<<<<<<<<<<<<< + * outaroonup = NaN + * retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) */ - __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 2598, __pyx_L1_error) + __pyx_v_outaroondown = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":2630 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":273 + * length = check_length2(high, low) + * outaroondown = NaN + * outaroonup = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) + * _ta_check_success("TA_AROON", retCode) */ - __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 2630, __pyx_L1_error) + __pyx_v_outaroonup = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":2662 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CEIL( np.ndarray real not None ): + /* "talib/_stream.pxi":274 + * outaroondown = NaN + * outaroonup = NaN + * retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AROON", retCode) + * return outaroondown , outaroonup */ - __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 2662, __pyx_L1_error) + __pyx_v_retCode = TA_AROON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outaroondown), (&__pyx_v_outaroonup)); - /* "talib/_func.pxi":2691 - * return outreal + /* "talib/_stream.pxi":275 + * outaroonup = NaN + * retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) + * _ta_check_success("TA_AROON", retCode) # <<<<<<<<<<<<<< + * return outaroondown , outaroonup * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_tuple__136 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__136); - __Pyx_GIVEREF(__pyx_tuple__136); - __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CMO, 2691, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 2691, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":2722 - * return outreal + /* "talib/_stream.pxi":276 + * retCode = lib.TA_AROON( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outaroondown , &outaroonup ) + * _ta_check_success("TA_AROON", retCode) + * return outaroondown , outaroonup # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CORREL, 2722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outaroondown); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outaroonup); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 276, __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)) __PYX_ERR(4, 276, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(4, 276, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":2755 + /* "talib/_stream.pxi":243 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def COS( np.ndarray real not None ): + * def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COS, 2755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(3, 2755, __pyx_L1_error) - /* "talib/_func.pxi":2784 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def COSH( np.ndarray real not None ): - */ - __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COSH, 2784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(3, 2784, __pyx_L1_error) + /* 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.stream_AROON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":2813 - * return outreal +/* "talib/_stream.pxi":278 + * return outaroondown , outaroonup * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + * def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(3, 2813, __pyx_L1_error) - /* "talib/_func.pxi":2844 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_374stream_AROONOSC, " AROONOSC(high, low[, timeperiod=?])\n\n Aroon Oscillator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC = {"stream_AROONOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_374stream_AROONOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_375stream_AROONOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_AROONOSC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, 1); __PYX_ERR(4, 278, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 278, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AROONOSC") < 0)) __PYX_ERR(4, 278, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 280, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_AROONOSC", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 278, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 280, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 280, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_374stream_AROONOSC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_AROONOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":300 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DIV, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(3, 2844, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2875 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":301 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DX, 2875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(3, 2875, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":2908 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":302 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) */ - __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EMA, 2908, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(3, 2908, __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(4, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2939 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def EXP( np.ndarray real not None ): + /* "talib/_stream.pxi":303 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN */ - __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 2939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(3, 2939, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":2968 - * return outreal - * - * @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 ): + /* "talib/_stream.pxi":304 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_FLOOR, 2968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(3, 2968, __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(4, 304, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":2997 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_DCPERIOD( np.ndarray real not None ): + /* "talib/_stream.pxi":305 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AROONOSC", retCode) */ - __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPERIOD, 2997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(3, 2997, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":3026 + /* "talib/_stream.pxi":306 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _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 HT_DCPHASE( np.ndarray real not None ): */ - __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPHASE, 3026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(3, 3026, __pyx_L1_error) + __pyx_v_retCode = TA_AROONOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":3055 + /* "talib/_stream.pxi":307 + * outreal = NaN + * retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _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 HT_PHASOR( np.ndarray real not None ): */ - __pyx_tuple__149 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__149); - __Pyx_GIVEREF(__pyx_tuple__149); - __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_PHASOR, 3055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(3, 3055, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AROONOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3087 - * return outinphase , outquadrature + /* "talib/_stream.pxi":308 + * retCode = lib.TA_AROONOSC( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _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 HT_SINE( np.ndarray real not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__151 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__151); - __Pyx_GIVEREF(__pyx_tuple__151); - __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_SINE, 3087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3119 - * return outsine , outleadsine + /* "talib/_stream.pxi":278 + * return outaroondown , outaroonup * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_TRENDLINE( np.ndarray real not None ): + * def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDLINE, 3119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(3, 3119, __pyx_L1_error) - /* "talib/_func.pxi":3148 + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_AROONOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":310 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_TRENDMODE( np.ndarray real not None ): + * def stream_ASIN( np.ndarray real not None ): */ - __pyx_tuple__154 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__154); - __Pyx_GIVEREF(__pyx_tuple__154); - __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDMODE, 3148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(3, 3148, __pyx_L1_error) - /* "talib/_func.pxi":3177 - * return outinteger - * - * @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 ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_376stream_ASIN, " ASIN(real)\n\n Vector Trigonometric ASin (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_377stream_ASIN = {"stream_ASIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_377stream_ASIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_376stream_ASIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_377stream_ASIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ASIN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 310, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ASIN") < 0)) __PYX_ERR(4, 310, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ASIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 310, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 312, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_376stream_ASIN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_376stream_ASIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ASIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":329 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] */ - __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_KAMA, 3177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(3, 3177, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3208 - * return outreal - * - * @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 ): + /* "talib/_stream.pxi":330 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN */ - __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG, 3208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(3, 3208, __pyx_L1_error) + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - /* "talib/_func.pxi":3239 + /* "talib/_stream.pxi":331 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":332 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ASIN", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":333 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ASIN", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_ANGLE, 3239, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(3, 3239, __pyx_L1_error) + __pyx_v_retCode = TA_ASIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":3270 + /* "talib/_stream.pxi":334 + * outreal = NaN + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ASIN", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_INTERCEPT, 3270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(3, 3270, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ASIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3301 - * return outreal + /* "talib/_stream.pxi":335 + * retCode = lib.TA_ASIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ASIN", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_SLOPE, 3301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3332 + /* "talib/_stream.pxi":310 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def LN( np.ndarray real not None ): + * def stream_ASIN( np.ndarray real not None ): */ - __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LN, 3332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(3, 3332, __pyx_L1_error) - /* "talib/_func.pxi":3361 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LOG10( np.ndarray real not None ): - */ - __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LOG10, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(3, 3361, __pyx_L1_error) + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ASIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":3390 +/* "talib/_stream.pxi":337 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + * def stream_ATAN( np.ndarray real not None ): */ - __pyx_tuple__163 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__163); - __Pyx_GIVEREF(__pyx_tuple__163); - __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(3, 3390, __pyx_L1_error) - /* "talib/_func.pxi":3422 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): - */ - __pyx_tuple__165 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__165); - __Pyx_GIVEREF(__pyx_tuple__165); - __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACD, 3422, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(3, 3422, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_ATAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_378stream_ATAN, " ATAN(real)\n\n Vector Trigonometric ATan (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_379stream_ATAN = {"stream_ATAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_379stream_ATAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_378stream_ATAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_379stream_ATAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ATAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 337, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ATAN") < 0)) __PYX_ERR(4, 337, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ATAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 337, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 339, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_378stream_ATAN(__pyx_self, __pyx_v_real); - /* "talib/_func.pxi":3461 - * return outmacd , outmacdsignal , outmacdhist - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_378stream_ATAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ATAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":356 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] */ - __pyx_tuple__167 = PyTuple_Pack(17, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__167); - __Pyx_GIVEREF(__pyx_tuple__167); - __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDEXT, 3461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(3, 3461, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3503 - * return outmacd , outmacdsignal , outmacdhist - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + /* "talib/_stream.pxi":357 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN */ - __pyx_tuple__169 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__169); - __Pyx_GIVEREF(__pyx_tuple__169); - __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(3, 3503, __pyx_L1_error) + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - /* "talib/_func.pxi":3540 - * return outmacd , outmacdsignal , outmacdhist - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + /* "talib/_stream.pxi":358 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__171 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__171); - __Pyx_GIVEREF(__pyx_tuple__171); - __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAMA, 3540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(3, 3540, __pyx_L1_error) + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - /* "talib/_func.pxi":3575 - * return outmama , outfama - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + /* "talib/_stream.pxi":359 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATAN", retCode) */ - __pyx_tuple__173 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__173); - __Pyx_GIVEREF(__pyx_tuple__173); - __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAVP, 3575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(3, 3575, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":3610 + /* "talib/_stream.pxi":360 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ATAN", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAX, 3610, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(3, 3610, __pyx_L1_error) + __pyx_v_retCode = TA_ATAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":3641 + /* "talib/_stream.pxi":361 + * outreal = NaN + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATAN", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_tuple__176 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger, __pyx_n_s_outinteger_data, __pyx_n_s_i); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__176); - __Pyx_GIVEREF(__pyx_tuple__176); - __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(3, 3641, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3675 - * return outinteger + /* "talib/_stream.pxi":362 + * retCode = lib.TA_ATAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATAN", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @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 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__178 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__178); - __Pyx_GIVEREF(__pyx_tuple__178); - __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3675, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 362, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3705 + /* "talib/_stream.pxi":337 * 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 ): + * def stream_ATAN( np.ndarray real not None ): */ - __pyx_tuple__180 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__180); - __Pyx_GIVEREF(__pyx_tuple__180); - __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(3, 3705, __pyx_L1_error) - /* "talib/_func.pxi":3739 + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ATAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":364 * 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 ): + * def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPOINT, 3739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(3, 3739, __pyx_L1_error) - /* "talib/_func.pxi":3770 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_ATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_380stream_ATR, " ATR(high, low, close[, timeperiod=?])\n\n Average True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_381stream_ATR = {"stream_ATR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_381stream_ATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_380stream_ATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_381stream_ATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ATR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 1); __PYX_ERR(4, 364, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, 2); __PYX_ERR(4, 364, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 364, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ATR") < 0)) __PYX_ERR(4, 364, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 366, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 364, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 366, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 366, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 366, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_380stream_ATR(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_380stream_ATR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ATR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":387 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(3, 3770, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3802 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":388 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIN, 3802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(3, 3802, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":3833 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":389 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3833, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(3, 3833, __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(4, 389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3867 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":390 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_tuple__186 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__186); - __Pyx_GIVEREF(__pyx_tuple__186); - __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(3, 3867, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":3901 - * return outmin , outmax - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":391 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) */ - __pyx_tuple__188 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx, __pyx_n_s_outminidx_data, __pyx_n_s_i, __pyx_n_s_outmaxidx_data); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__188); - __Pyx_GIVEREF(__pyx_tuple__188); - __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(3, 3901, __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(4, 391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3941 - * return outminidx , outmaxidx - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":392 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN */ - __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DI, 3941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(3, 3941, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":3974 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":393 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DM, 3974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(3, 3974, __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(4, 393, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":4006 + /* "talib/_stream.pxi":394 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":395 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ATR", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MOM, 4006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(3, 4006, __pyx_L1_error) + __pyx_v_retCode = TA_ATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":4037 + /* "talib/_stream.pxi":396 + * outreal = NaN + * retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATR", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): */ - __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MULT, 4037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(3, 4037, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 396, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":4068 - * return outreal + /* "talib/_stream.pxi":397 + * retCode = lib.TA_ATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ATR", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 397, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":4101 + /* "talib/_stream.pxi":364 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def OBV( np.ndarray real not None , np.ndarray volume not None ): - */ - __pyx_tuple__195 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__195); - __Pyx_GIVEREF(__pyx_tuple__195); - __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_OBV, 4101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 4101, __pyx_L1_error) - - /* "talib/_func.pxi":4132 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DI, 4132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 4132, __pyx_L1_error) - - /* "talib/_func.pxi":4165 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DM, 4165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 4165, __pyx_L1_error) - - /* "talib/_func.pxi":4197 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): - */ - __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PPO, 4197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 4197, __pyx_L1_error) - - /* "talib/_func.pxi":4230 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROC, 4230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(3, 4230, __pyx_L1_error) - - /* "talib/_func.pxi":4261 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCP, 4261, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 4261, __pyx_L1_error) - - /* "talib/_func.pxi":4292 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR, 4292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 4292, __pyx_L1_error) - - /* "talib/_func.pxi":4323 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR100, 4323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 4323, __pyx_L1_error) - - /* "talib/_func.pxi":4354 - * 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 ): - */ - __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_RSI, 4354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 4354, __pyx_L1_error) - - /* "talib/_func.pxi":4385 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): - */ - __pyx_tuple__205 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__205); - __Pyx_GIVEREF(__pyx_tuple__205); - __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 4385, __pyx_L1_error) - - /* "talib/_func.pxi":4418 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): - */ - __pyx_tuple__207 = PyTuple_Pack(18, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__207); - __Pyx_GIVEREF(__pyx_tuple__207); - __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 4418, __pyx_L1_error) - - /* "talib/_func.pxi":4457 - * return outreal - * - * @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 ): - */ - __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SIN, 4457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 4457, __pyx_L1_error) - - /* "talib/_func.pxi":4486 - * 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 ): - */ - __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SINH, 4486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(3, 4486, __pyx_L1_error) - - /* "talib/_func.pxi":4515 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + * def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SMA, 4515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 4515, __pyx_L1_error) - /* "talib/_func.pxi":4546 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SQRT( np.ndarray real not None ): - */ - __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SQRT, 4546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(3, 4546, __pyx_L1_error) + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":4575 +/* "talib/_stream.pxi":399 * 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 ): + * def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_tuple__213 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__213); - __Pyx_GIVEREF(__pyx_tuple__213); - __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STDDEV, 4575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 4575, __pyx_L1_error) - /* "talib/_func.pxi":4607 - * 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 ): - */ - __pyx_tuple__215 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__215); - __Pyx_GIVEREF(__pyx_tuple__215); - __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCH, 4607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 4607, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE, " AVGPRICE(open, high, low, close)\n\n Average Price (Price Transform)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE = {"stream_AVGPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_382stream_AVGPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_383stream_AVGPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_AVGPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 1); __PYX_ERR(4, 399, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 2); __PYX_ERR(4, 399, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 399, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_AVGPRICE", 1, 4, 4, 3); __PYX_ERR(4, 399, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_AVGPRICE") < 0)) __PYX_ERR(4, 399, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_AVGPRICE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 399, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 401, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 401, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 401, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 401, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":4647 - * 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 ): - */ - __pyx_tuple__217 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__217); - __Pyx_GIVEREF(__pyx_tuple__217); - __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHF, 4647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(3, 4647, __pyx_L1_error) + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":4685 - * 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 ): - */ - __pyx_tuple__219 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__219); - __Pyx_GIVEREF(__pyx_tuple__219); - __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHRSI, 4685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(3, 4685, __pyx_L1_error) +static PyObject *__pyx_pf_5talib_7_ta_lib_382stream_AVGPRICE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":4722 - * 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 ): + /* "talib/_stream.pxi":421 + * int outnbelement + * double outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUB, 4722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 4722, __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(4, 421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4753 - * 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 ): + /* "talib/_stream.pxi":422 + * double outreal + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4753, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(3, 4753, __pyx_L1_error) + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":4784 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + /* "talib/_stream.pxi":423 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_tuple__223 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__223); - __Pyx_GIVEREF(__pyx_tuple__223); - __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_T3, 4784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(3, 4784, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 423, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4816 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TAN( np.ndarray real not None ): + /* "talib/_stream.pxi":424 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TAN, 4816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 4816, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":4845 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TANH( np.ndarray real not None ): + /* "talib/_stream.pxi":425 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TANH, 4845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 4845, __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(4, 425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4874 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":426 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TEMA, 4874, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 4874, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":4905 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":427 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_tuple__228 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__228); - __Pyx_GIVEREF(__pyx_tuple__228); - __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRANGE, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(3, 4905, __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(4, 427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4936 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":428 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outreal = NaN */ - __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIMA, 4936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(3, 4936, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":4967 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":429 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIX, 4967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(3, 4967, __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(4, 429, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":4998 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":430 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGPRICE", retCode) */ - __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TSF, 4998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(3, 4998, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_func.pxi":5029 + /* "talib/_stream.pxi":431 + * length = check_length4(open, high, low, close) + * outreal = NaN + * retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_AVGPRICE", retCode) * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TYPPRICE, 5029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(3, 5029, __pyx_L1_error) + __pyx_v_retCode = TA_AVGPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_func.pxi":5060 + /* "talib/_stream.pxi":432 + * outreal = NaN + * retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGPRICE", retCode) # <<<<<<<<<<<<<< * return outreal * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): */ - __pyx_tuple__234 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__234); - __Pyx_GIVEREF(__pyx_tuple__234); - __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5060, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(3, 5060, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_AVGPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":5095 - * return outreal + /* "talib/_stream.pxi":433 + * retCode = lib.TA_AVGPRICE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_AVGPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(3, 5095, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 433, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":5127 + /* "talib/_stream.pxi":399 * return outreal * * @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 ): + * def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(3, 5127, __pyx_L1_error) - /* "talib/_func.pxi":5158 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WILLR, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(3, 5158, __pyx_L1_error) + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_AVGPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":5191 +/* "talib/_stream.pxi":435 * return outreal * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + * def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): */ - __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WMA, 5191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(3, 5191, __pyx_L1_error) - /* "talib/_abstract.pxi":74 - * if sys.version >= '3': - * - * def str2bytes(s): # <<<<<<<<<<<<<< - * return bytes(s, 'ascii') - * - */ - __pyx_tuple__241 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__241); - __Pyx_GIVEREF(__pyx_tuple__241); - __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 74, __pyx_L1_error) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_384stream_BBANDS, " BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?])\n\n Bollinger Bands (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdevup: 2.0\n nbdevdn: 2.0\n matype: 0 (Simple Moving Average)\n Outputs:\n upperband\n middleband\n lowerband\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_385stream_BBANDS = {"stream_BBANDS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_385stream_BBANDS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_384stream_BBANDS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_385stream_BBANDS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_nbdevup; + double __pyx_v_nbdevdn; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + 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("stream_BBANDS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdevup,&__pyx_n_s_nbdevdn,&__pyx_n_s_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdevup); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdevdn); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 435, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BBANDS") < 0)) __PYX_ERR(4, 435, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 437, __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(4, 437, __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(4, 437, __pyx_L3_error) + } else { + __pyx_v_nbdevdn = ((double)((double)-4e37)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 437, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_BBANDS", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 435, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 437, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_384stream_BBANDS(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype); - /* "talib/_abstract.pxi":77 - * return bytes(s, 'ascii') - * - * def bytes2str(b): # <<<<<<<<<<<<<< - * return b.decode('ascii') - * - */ - __pyx_tuple__243 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__243); - __Pyx_GIVEREF(__pyx_tuple__243); - __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 77, __pyx_L1_error) + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_abstract.pxi":82 - * else: - * - * def str2bytes(s): # <<<<<<<<<<<<<< - * return s - * +static PyObject *__pyx_pf_5talib_7_ta_lib_384stream_BBANDS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outrealupperband; + double __pyx_v_outrealmiddleband; + double __pyx_v_outreallowerband; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_BBANDS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":463 + * double outrealmiddleband + * double outreallowerband + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] */ - __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(1, 82, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":85 - * return s - * - * def bytes2str(b): # <<<<<<<<<<<<<< - * return b - * + /* "talib/_stream.pxi":464 + * double outreallowerband + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outrealupperband = NaN */ - __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 85, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(1, 85, __pyx_L1_error) + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); - /* "talib/_abstract.pxi":88 - * return b - * - * class Function(object): # <<<<<<<<<<<<<< - * """ - * This is a pythonic wrapper around TALIB's abstract interface. It is + /* "talib/_stream.pxi":465 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outrealupperband = NaN + * outrealmiddleband = NaN */ - __pyx_tuple__247 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__247); - __Pyx_GIVEREF(__pyx_tuple__247); - __pyx_tuple__248 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__248); - __Pyx_GIVEREF(__pyx_tuple__248); + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); - /* "talib/_abstract.pxi":117 - * """ - * - * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< - * # make sure the function_name is valid and define all of our variables - * self.__name = function_name.upper() + /* "talib/_stream.pxi":466 + * real_data = real.data + * length = real.shape[0] + * outrealupperband = NaN # <<<<<<<<<<<<<< + * outrealmiddleband = NaN + * outreallowerband = NaN */ - __pyx_tuple__249 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_function_name, __pyx_n_s_func_object, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__249); - __Pyx_GIVEREF(__pyx_tuple__249); - __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 117, __pyx_L1_error) + __pyx_v_outrealupperband = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_abstract.pxi":130 - * self.func_object = func_object - * - * @property # <<<<<<<<<<<<<< - * def __local(self): - * local = self.__localdata + /* "talib/_stream.pxi":467 + * length = real.shape[0] + * outrealupperband = NaN + * outrealmiddleband = NaN # <<<<<<<<<<<<<< + * outreallowerband = NaN + * retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + */ + __pyx_v_outrealmiddleband = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":468 + * outrealupperband = NaN + * outrealmiddleband = NaN + * outreallowerband = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_BBANDS", retCode) */ - __pyx_tuple__251 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_i, __pyx_n_s_info, __pyx_n_s_input_name, __pyx_n_s_param_name, __pyx_n_s_output_name); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__251); - __Pyx_GIVEREF(__pyx_tuple__251); - __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_local_2, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 130, __pyx_L1_error) + __pyx_v_outreallowerband = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_abstract.pxi":172 - * return local - * - * @property # <<<<<<<<<<<<<< - * def info(self): - * """ + /* "talib/_stream.pxi":469 + * outrealmiddleband = NaN + * outreallowerband = NaN + * retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband */ - __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_info, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(1, 172, __pyx_L1_error) + __pyx_v_retCode = TA_BBANDS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdevup, __pyx_v_nbdevdn, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outrealupperband), (&__pyx_v_outrealmiddleband), (&__pyx_v_outreallowerband)); - /* "talib/_abstract.pxi":179 - * return self.__local.info.copy() + /* "talib/_stream.pxi":470 + * outreallowerband = NaN + * retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_BBANDS", retCode) # <<<<<<<<<<<<<< + * return outrealupperband , outrealmiddleband , outreallowerband * - * @property # <<<<<<<<<<<<<< - * def function_flags(self): - * """ */ - __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_function_flags, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 179, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BBANDS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_abstract.pxi":186 - * return self.__local.info['function_flags'] + /* "talib/_stream.pxi":471 + * retCode = lib.TA_BBANDS( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdevup , nbdevdn , matype , &outbegidx , &outnbelement , &outrealupperband , &outrealmiddleband , &outreallowerband ) + * _ta_check_success("TA_BBANDS", retCode) + * return outrealupperband , outrealmiddleband , outreallowerband # <<<<<<<<<<<<<< * - * @property # <<<<<<<<<<<<<< - * def output_flags(self): - * """ + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_flags, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outrealupperband); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outrealmiddleband); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outreallowerband); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 471, __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)) __PYX_ERR(4, 471, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(4, 471, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(4, 471, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; - /* "talib/_abstract.pxi":193 - * return self.__local.info['output_flags'].copy() + /* "talib/_stream.pxi":435 + * return outreal * - * def get_input_names(self): # <<<<<<<<<<<<<< - * """ - * Returns the dict of input price series names that specifies which + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): */ - __pyx_tuple__256 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(1, 193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__256); - __Pyx_GIVEREF(__pyx_tuple__256); - __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_names, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 193, __pyx_L1_error) - /* "talib/_abstract.pxi":204 - * return ret + /* 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_BBANDS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":473 + * return outrealupperband , outrealmiddleband , outreallowerband * - * def set_input_names(self, input_names): # <<<<<<<<<<<<<< - * """ - * Sets the input price series names to use. + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): */ - __pyx_tuple__258 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_input_names, __pyx_n_s_local, __pyx_n_s_input_name, __pyx_n_s_price_series); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(1, 204, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__258); - __Pyx_GIVEREF(__pyx_tuple__258); - __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_names, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(1, 204, __pyx_L1_error) - /* "talib/_abstract.pxi":216 - * input_names = property(get_input_names, set_input_names) - * - * def get_input_arrays(self): # <<<<<<<<<<<<<< - * """ - * Returns a copy of the dict of input arrays in use. +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_BETA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_386stream_BETA, " BETA(real0, real1[, timeperiod=?])\n\n Beta (Statistic Functions)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Parameters:\n timeperiod: 5\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_387stream_BETA = {"stream_BETA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_387stream_BETA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_386stream_BETA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_387stream_BETA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_BETA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, 1); __PYX_ERR(4, 473, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 473, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BETA") < 0)) __PYX_ERR(4, 473, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 475, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_BETA", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 473, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 475, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 475, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_386stream_BETA(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_386stream_BETA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_BETA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":496 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) */ - __pyx_tuple__260 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_local); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__260); - __Pyx_GIVEREF(__pyx_tuple__260); - __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_arrays, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(1, 216, __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(4, 496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":227 - * return local.input_arrays.copy() - * - * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< - * """ - * Sets the dict of input_arrays to use. Returns True/False for + /* "talib/_stream.pxi":497 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data */ - __pyx_tuple__262 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_input_arrays, __pyx_n_s_local, __pyx_n_s_missing_keys, __pyx_n_s_key, __pyx_n_s_missing); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__262); - __Pyx_GIVEREF(__pyx_tuple__262); - __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_arrays, 227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(1, 227, __pyx_L1_error) + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); - /* "talib/_abstract.pxi":276 - * input_arrays = property(get_input_arrays, set_input_arrays) - * - * def get_parameters(self): # <<<<<<<<<<<<<< - * """ - * Returns the function's optional parameters and their default values. + /* "talib/_stream.pxi":498 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) */ - __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__264); - __Pyx_GIVEREF(__pyx_tuple__264); - __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_parameters, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(1, 276, __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(4, 498, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":286 - * return ret - * - * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< - * """ - * Sets the function parameter values. + /* "talib/_stream.pxi":499 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN */ - __pyx_tuple__266 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parameters, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_param, __pyx_n_s_value); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__266); - __Pyx_GIVEREF(__pyx_tuple__266); - __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_parameters, 286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(1, 286, __pyx_L1_error) - __pyx_tuple__268 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__268); - __Pyx_GIVEREF(__pyx_tuple__268); + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); - /* "talib/_abstract.pxi":301 - * parameters = property(get_parameters, set_parameters) - * - * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< - * """ - * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + /* "talib/_stream.pxi":500 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__269 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_update_info, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_skip_first, __pyx_n_s_i, __pyx_n_s_param_name); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__269); - __Pyx_GIVEREF(__pyx_tuple__269); - __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_function_args, 301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(1, 301, __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(4, 500, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_abstract.pxi":336 - * local.outputs_valid = False - * - * @property # <<<<<<<<<<<<<< - * def lookback(self): - * """ + /* "talib/_stream.pxi":501 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BETA", retCode) */ - __pyx_tuple__271 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_holder, __pyx_n_s_i, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_type, __pyx_n_s_lookback); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__271); - __Pyx_GIVEREF(__pyx_tuple__271); - __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 336, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_abstract.pxi":357 - * return lookback - * - * @property # <<<<<<<<<<<<<< - * def output_names(self): - * """ + /* "talib/_stream.pxi":502 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BETA", retCode) + * return outreal */ - __pyx_tuple__273 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__273); - __Pyx_GIVEREF(__pyx_tuple__273); - __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_names, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(1, 357, __pyx_L1_error) + __pyx_v_retCode = TA_BETA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_abstract.pxi":367 - * return ret + /* "talib/_stream.pxi":503 + * outreal = NaN + * retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BETA", retCode) # <<<<<<<<<<<<<< + * return outreal * - * @property # <<<<<<<<<<<<<< - * def outputs(self): - * """ */ - __pyx_tuple__275 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__275); - __Pyx_GIVEREF(__pyx_tuple__275); - __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(1, 367, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BETA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_abstract.pxi":399 - * return ret[0] if len(ret) == 1 else ret + /* "talib/_stream.pxi":504 + * retCode = lib.TA_BETA( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BETA", retCode) + * return outreal # <<<<<<<<<<<<<< * - * def run(self, input_arrays=None): # <<<<<<<<<<<<<< - * """ - * run([input_arrays=None]) + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_tuple__277 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__277)) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__277); - __Pyx_GIVEREF(__pyx_tuple__277); - __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_abstract.pxi":411 - * return self.outputs + /* "talib/_stream.pxi":473 + * return outrealupperband , outrealmiddleband , outreallowerband * - * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< - * """ - * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): */ - __pyx_tuple__279 = PyTuple_Pack(16, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_opt_input_values, __pyx_n_s_price_series_name_values, __pyx_n_s_input_arrays, __pyx_n_s_input_price_series_names, __pyx_n_s_i, __pyx_n_s_arg, __pyx_n_s_msg, __pyx_n_s_no_existing_input_arrays, __pyx_n_s_param_name, __pyx_n_s_value, __pyx_n_s_input_name, __pyx_n_s_n); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__279); - __Pyx_GIVEREF(__pyx_tuple__279); - __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(1, 411, __pyx_L1_error) - /* "talib/_abstract.pxi":477 + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_BETA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":506 + * return outreal * - * # figure out which price series names we're using for inputs - * def __input_price_series_names(self): # <<<<<<<<<<<<<< - * local = self.__local - * input_price_series_names = [] + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_tuple__281 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_input_name, __pyx_n_s_price_series, __pyx_n_s_name); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__281); - __Pyx_GIVEREF(__pyx_tuple__281); - __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_input_price_series_names_2, 477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(1, 477, __pyx_L1_error) - /* "talib/_abstract.pxi":489 - * return input_price_series_names - * - * def __call_function(self): # <<<<<<<<<<<<<< - * local = self.__local - * input_price_series_names = self.__input_price_series_names() +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_388stream_BOP, " BOP(open, high, low, close)\n\n Balance Of Power (Momentum Indicators)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_389stream_BOP = {"stream_BOP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_389stream_BOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_388stream_BOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_389stream_BOP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_BOP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 1); __PYX_ERR(4, 506, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 2); __PYX_ERR(4, 506, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 506, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_BOP", 1, 4, 4, 3); __PYX_ERR(4, 506, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_BOP") < 0)) __PYX_ERR(4, 506, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_BOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 506, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 508, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_388stream_BOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_388stream_BOP(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":528 + * int outnbelement + * double outreal + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_tuple__283 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_args, __pyx_n_s_price_series, __pyx_n_s_series, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_results, __pyx_n_s_keys, __pyx_n_s_i, __pyx_n_s_output); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__283); - __Pyx_GIVEREF(__pyx_tuple__283); - __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call_function, 489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 489, __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(4, 528, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":520 - * local.outputs_valid = True - * - * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< - * type_ = self.__local.opt_inputs[input_name]['type'] - * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + /* "talib/_stream.pxi":529 + * double outreal + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_tuple__285 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__285); - __Pyx_GIVEREF(__pyx_tuple__285); - __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_check_opt_input_value, 520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(1, 520, __pyx_L1_error) + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_abstract.pxi":535 - * return False - * - * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< - * """ - * Returns the user-set value if there is one, otherwise the default. + /* "talib/_stream.pxi":530 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_tuple__287 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_local, __pyx_n_s_value); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__287); - __Pyx_GIVEREF(__pyx_tuple__287); - __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_opt_input_value, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(1, 535, __pyx_L1_error) + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 530, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":545 - * return value - * - * def __repr__(self): # <<<<<<<<<<<<<< - * return '%s' % self.info - * + /* "talib/_stream.pxi":531 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_repr, 545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(1, 545, __pyx_L1_error) + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_abstract.pxi":548 - * return '%s' % self.info - * - * def __unicode__(self): # <<<<<<<<<<<<<< - * return unicode(self.__str__()) - * + /* "talib/_stream.pxi":532 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_unicode, 548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(1, 548, __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(4, 532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":551 - * return unicode(self.__str__()) - * - * def __str__(self): # <<<<<<<<<<<<<< - * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults - * + /* "talib/_stream.pxi":533 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(1, 551, __pyx_L1_error) + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_abstract.pxi":565 - * # therefore recommended over using these functions directly. - * - * def _ta_getGroupTable(): # <<<<<<<<<<<<<< - * """ - * Returns the list of available TALIB function group names. *slow* + /* "talib/_stream.pxi":534 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_tuple__292 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__292); - __Pyx_GIVEREF(__pyx_tuple__292); - __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getGroupTable, 565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(1, 565, __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(4, 534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_abstract.pxi":577 - * return groups - * - * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< - * """ - * Returns a list of the functions for the specified group name. *slow* + /* "talib/_stream.pxi":535 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outreal = NaN */ - __pyx_tuple__294 = PyTuple_Pack(4, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__294); - __Pyx_GIVEREF(__pyx_tuple__294); - __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncTable, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(1, 577, __pyx_L1_error) + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_abstract.pxi":589 - * return functions - * - * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< - * """ - * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + /* "talib/_stream.pxi":536 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) */ - __pyx_tuple__296 = PyTuple_Pack(7, __pyx_n_s_flag, __pyx_n_s_flags_lookup_dict, __pyx_n_s_value_range, __pyx_n_s_min_int, __pyx_n_s_max_int, __pyx_n_s_ret, __pyx_n_s_i); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__296); - __Pyx_GIVEREF(__pyx_tuple__296); - __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_flags, 589, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(1, 589, __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(4, 536, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_abstract.pxi":648 - * } - * - * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< - * """ - * Returns the info dict for the function. It has the following keys: name, + /* "talib/_stream.pxi":537 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BOP", retCode) */ - __pyx_tuple__298 = PyTuple_Pack(3, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__298); - __Pyx_GIVEREF(__pyx_tuple__298); - __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncInfo, 648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(1, 648, __pyx_L1_error) + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; - /* "talib/_abstract.pxi":667 - * } - * - * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's input info dict for the given index. It has two + /* "talib/_stream.pxi":538 + * length = check_length4(open, high, low, close) + * outreal = NaN + * retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_BOP", retCode) + * return outreal */ - __pyx_tuple__300 = PyTuple_Pack(5, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__300); - __Pyx_GIVEREF(__pyx_tuple__300); - __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getInputParameterInfo, 667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(1, 667, __pyx_L1_error) + __pyx_v_retCode = TA_BOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); - /* "talib/_abstract.pxi":688 - * } + /* "talib/_stream.pxi":539 + * outreal = NaN + * retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BOP", retCode) # <<<<<<<<<<<<<< + * return outreal * - * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's opt_input info dict for the given index. It has the */ - __pyx_tuple__302 = PyTuple_Pack(6, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name, __pyx_n_s_default_value); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__302); - __Pyx_GIVEREF(__pyx_tuple__302); - __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(1, 688, __pyx_L1_error) + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_BOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_abstract.pxi":712 - * } + /* "talib/_stream.pxi":540 + * retCode = lib.TA_BOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_BOP", retCode) + * return outreal # <<<<<<<<<<<<<< * - * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's output info dict for the given index. It has two + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOutputParameterInfo, 712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(1, 712, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_abstract.pxi":732 - * } + /* "talib/_stream.pxi":506 + * return outreal * - * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< - * """ - * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_tuple__305 = PyTuple_Pack(13, __pyx_n_s_func_info, __pyx_n_s_defaults, __pyx_n_s_func_line, __pyx_n_s_func_args, __pyx_n_s_docs, __pyx_n_s_input_names, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_params, __pyx_n_s_param, __pyx_n_s_outputs, __pyx_n_s_output, __pyx_n_s_documentation); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_tuple__305); - __Pyx_GIVEREF(__pyx_tuple__305); - __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__305, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_defaults_and_docs, 732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_RefNannyFinishContext(); - return -1; -} -/* #### Code section: init_constants ### */ -static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { - __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; - __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys; - if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(4, 1, __pyx_L1_error); - __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_2048 = PyInt_FromLong(2048); if (unlikely(!__pyx_int_2048)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_16777216 = PyInt_FromLong(16777216L); if (unlikely(!__pyx_int_16777216)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_67108864 = PyInt_FromLong(67108864L); if (unlikely(!__pyx_int_67108864)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_134217728 = PyInt_FromLong(134217728L); if (unlikely(!__pyx_int_134217728)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_268435456 = PyInt_FromLong(268435456L); if (unlikely(!__pyx_int_268435456)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(4, 1, __pyx_L1_error) - return 0; + /* function exit code */ __pyx_L1_error:; - return -1; -} -/* #### Code section: init_globals ### */ - -static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { - return 0; -} -/* #### Code section: init_module ### */ - -static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ -static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ - -static int __Pyx_modinit_global_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); - /*--- Global init code ---*/ + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_BOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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 0; + return __pyx_r; } -static int __Pyx_modinit_variable_export_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); - /*--- Variable export code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} +/* "talib/_stream.pxi":542 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ -static int __Pyx_modinit_function_export_code(void) { +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_390stream_CCI, " CCI(high, low, close[, timeperiod=?])\n\n Commodity Channel Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_391stream_CCI = {"stream_CCI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_391stream_CCI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_390stream_CCI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_391stream_CCI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("__Pyx_modinit_function_export_code", 0); - /*--- Function export code ---*/ + __Pyx_RefNannySetupContext("stream_CCI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 1); __PYX_ERR(4, 542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, 2); __PYX_ERR(4, 542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 542, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CCI") < 0)) __PYX_ERR(4, 542, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 544, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CCI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 542, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); __Pyx_RefNannyFinishContext(); - return 0; -} + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 544, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 544, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 544, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_390stream_CCI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_timeperiod); -static int __Pyx_modinit_type_init_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); - /*--- Type init code ---*/ + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } __Pyx_RefNannyFinishContext(); - return 0; + return __pyx_r; } -static int __Pyx_modinit_type_import_code(void) { +static PyObject *__pyx_pf_5talib_7_ta_lib_390stream_CCI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; int __pyx_lineno = 0; const char *__pyx_filename = NULL; int __pyx_clineno = 0; - __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); - /*--- Type import code ---*/ - __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 9, __pyx_L1_error) + __Pyx_RefNannySetupContext("stream_CCI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":565 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 565, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", - #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), - #elif CYTHON_COMPILING_IN_LIMITED_API - sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), - #else - sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject), - #endif - __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(5, 9, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error) + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":566 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":567 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 567, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); - __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 271, __pyx_L1_error) - __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 316, __pyx_L1_error) - __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 320, __pyx_L1_error) - __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 359, __pyx_L1_error) - __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error) - __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error) - __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error) - __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error) - __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error) - __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error) - __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error) - __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error) - __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error) - __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error) - __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 929, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_RefNannyFinishContext(); - return 0; - __pyx_L1_error:; - __Pyx_XDECREF(__pyx_t_1); - __Pyx_RefNannyFinishContext(); - return -1; -} + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; -static int __Pyx_modinit_variable_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); - /*--- Variable import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "talib/_stream.pxi":568 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); -static int __Pyx_modinit_function_import_code(void) { - __Pyx_RefNannyDeclarations - __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); - /*--- Function import code ---*/ - __Pyx_RefNannyFinishContext(); - return 0; -} + /* "talib/_stream.pxi":569 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + /* "talib/_stream.pxi":570 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); -#if PY_MAJOR_VERSION >= 3 -#if CYTHON_PEP489_MULTI_PHASE_INIT -static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ -static int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/ -static PyModuleDef_Slot __pyx_moduledef_slots[] = { - {Py_mod_create, (void*)__pyx_pymod_create}, - {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib}, - {0, NULL} -}; -#endif + /* "talib/_stream.pxi":571 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 571, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; -#ifdef __cplusplus -namespace { - struct PyModuleDef __pyx_moduledef = - #else - static struct PyModuleDef __pyx_moduledef = - #endif - { - PyModuleDef_HEAD_INIT, - "_ta_lib", - 0, /* m_doc */ - #if CYTHON_PEP489_MULTI_PHASE_INIT - 0, /* m_size */ - #elif CYTHON_USE_MODULE_STATE - sizeof(__pyx_mstate), /* m_size */ - #else - -1, /* m_size */ - #endif - __pyx_methods /* m_methods */, - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_moduledef_slots, /* m_slots */ - #else - NULL, /* m_reload */ - #endif - #if CYTHON_USE_MODULE_STATE - __pyx_m_traverse, /* m_traverse */ - __pyx_m_clear, /* m_clear */ - NULL /* m_free */ - #else - NULL, /* m_traverse */ - NULL, /* m_clear */ - NULL /* m_free */ - #endif - }; - #ifdef __cplusplus -} /* anonymous namespace */ -#endif -#endif + /* "talib/_stream.pxi":572 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CCI", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; -#ifndef CYTHON_NO_PYINIT_EXPORT -#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC -#elif PY_MAJOR_VERSION < 3 -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" void -#else -#define __Pyx_PyMODINIT_FUNC void -#endif -#else -#ifdef __cplusplus -#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * -#else -#define __Pyx_PyMODINIT_FUNC PyObject * -#endif -#endif + /* "talib/_stream.pxi":573 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CCI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CCI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + /* "talib/_stream.pxi":574 + * outreal = NaN + * retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CCI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CCI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 574, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; -#if PY_MAJOR_VERSION < 3 -__Pyx_PyMODINIT_FUNC init_ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC init_ta_lib(void) -#else -__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ -__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) -#if CYTHON_PEP489_MULTI_PHASE_INIT -{ - return PyModuleDef_Init(&__pyx_moduledef); -} -static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { - #if PY_VERSION_HEX >= 0x030700A1 - static PY_INT64_T main_interpreter_id = -1; - PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); - if (main_interpreter_id == -1) { - main_interpreter_id = current_id; - return (unlikely(current_id == -1)) ? -1 : 0; - } else if (unlikely(main_interpreter_id != current_id)) - #else - static PyInterpreterState *main_interpreter = NULL; - PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; - if (!main_interpreter) { - main_interpreter = current_interpreter; - } else if (unlikely(main_interpreter != current_interpreter)) - #endif - { - PyErr_SetString( - PyExc_ImportError, - "Interpreter change detected - this module can only be loaded into one interpreter per process."); - return -1; - } - return 0; -} -#if CYTHON_COMPILING_IN_LIMITED_API -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) -#else -static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) -#endif -{ - PyObject *value = PyObject_GetAttrString(spec, from_name); - int result = 0; - if (likely(value)) { - if (allow_none || value != Py_None) { -#if CYTHON_COMPILING_IN_LIMITED_API - result = PyModule_AddObject(module, to_name, value); -#else - result = PyDict_SetItemString(moddict, to_name, value); -#endif - } - Py_DECREF(value); - } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { - PyErr_Clear(); - } else { - result = -1; - } - return result; -} -static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { - PyObject *module = NULL, *moddict, *modname; - CYTHON_UNUSED_VAR(def); - if (__Pyx_check_single_interpreter()) - return NULL; - if (__pyx_m) - return __Pyx_NewRef(__pyx_m); - modname = PyObject_GetAttrString(spec, "name"); - if (unlikely(!modname)) goto bad; - module = PyModule_NewObject(modname); - Py_DECREF(modname); - if (unlikely(!module)) goto bad; -#if CYTHON_COMPILING_IN_LIMITED_API - moddict = module; -#else - moddict = PyModule_GetDict(module); - if (unlikely(!moddict)) goto bad; -#endif - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; - if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; - return module; -bad: - Py_XDECREF(module); - return NULL; + /* "talib/_stream.pxi":575 + * retCode = lib.TA_CCI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CCI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":542 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CCI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; } +/* "talib/_stream.pxi":577 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ -static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module) +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds #endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS, " CDL2CROWS(open, high, low, close)\n\n Two Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS = {"stream_CDL2CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_392stream_CDL2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_393stream_CDL2CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds #endif -{ - int stringtab_initialized = 0; - #if CYTHON_USE_MODULE_STATE - int pystate_addmodule_run = 0; +) { + PyArrayObject *__pyx_v_open = 0; + PyArrayObject *__pyx_v_high = 0; + PyArrayObject *__pyx_v_low = 0; + PyArrayObject *__pyx_v_close = 0; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; #endif - PyObject *__pyx_t_1 = NULL; - 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 = 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)(PyObject *); - Py_ssize_t __pyx_t_17; - PyObject *__pyx_t_18 = NULL; - PyObject *__pyx_t_19 = NULL; - PyObject *__pyx_t_20 = NULL; - double __pyx_t_21; - int __pyx_t_22; - PyObject *__pyx_t_23 = NULL; - PyObject *__pyx_t_24 = NULL; - int __pyx_t_25; - PyObject *__pyx_t_26 = NULL; - PyObject *__pyx_t_27 = NULL; - PyObject *__pyx_t_28 = NULL; - int __pyx_t_29; - int __pyx_t_30; - int __pyx_t_31; - PyObject *(*__pyx_t_32)(PyObject *); + 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 - #if CYTHON_PEP489_MULTI_PHASE_INIT - if (__pyx_m) { - if (__pyx_m == __pyx_pyinit_module) return 0; - PyErr_SetString(PyExc_RuntimeError, "Module '_ta_lib' has already been imported. Re-initialisation is not supported."); - return -1; - } - #elif PY_MAJOR_VERSION >= 3 - if (__pyx_m) return __Pyx_NewRef(__pyx_m); - #endif - /*--- Module creation code ---*/ - #if CYTHON_PEP489_MULTI_PHASE_INIT - __pyx_m = __pyx_pyinit_module; - Py_INCREF(__pyx_m); - #else - #if PY_MAJOR_VERSION < 3 - __pyx_m = Py_InitModule4("_ta_lib", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); - if (unlikely(!__pyx_m)) __PYX_ERR(4, 1, __pyx_L1_error) - #elif CYTHON_USE_MODULE_STATE - __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1, __pyx_L1_error) - { - int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); - __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ - if (unlikely((add_module_result < 0))) __PYX_ERR(4, 1, __pyx_L1_error) - pystate_addmodule_run = 1; - } + __Pyx_RefNannySetupContext("stream_CDL2CROWS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); #else - __pyx_m = PyModule_Create(&__pyx_moduledef); - if (unlikely(!__pyx_m)) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #endif - CYTHON_UNUSED_VAR(__pyx_t_1); - __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(4, 1, __pyx_L1_error) - Py_INCREF(__pyx_d); - __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(4, 1, __pyx_L1_error) - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #if CYTHON_REFNANNY -__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); -if (!__Pyx_RefNanny) { - PyErr_Clear(); - __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); - if (!__Pyx_RefNanny) - Py_FatalError("failed to import 'refnanny' module"); -} -#endif - __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)", 0); - if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #ifdef __Pxy_PyFrame_Initialize_Offsets - __Pxy_PyFrame_Initialize_Offsets(); - #endif - __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(4, 1, __pyx_L1_error) - __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(4, 1, __pyx_L1_error) - #ifdef __Pyx_CyFunction_USED - if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_FusedFunction_USED - if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Coroutine_USED - if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_Generator_USED - if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_AsyncGen_USED - if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - #ifdef __Pyx_StopAsyncIteration_USED - if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; #endif - /*--- Library function declarations ---*/ - /*--- Threads initialization code ---*/ - #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS - PyEval_InitThreads(); #endif - /*--- Initialize various global constants etc. ---*/ - if (__Pyx_InitConstants() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - stringtab_initialized = 1; - if (__Pyx_InitGlobals() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) - if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif - if (__pyx_module_is_main_talib___ta_lib) { - if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(4, 1, __pyx_L1_error) + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 1); __PYX_ERR(4, 577, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 2); __PYX_ERR(4, 577, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 577, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, 3); __PYX_ERR(4, 577, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL2CROWS") < 0)) __PYX_ERR(4, 577, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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 PY_MAJOR_VERSION >= 3 + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDL2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 577, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; { - PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(4, 1, __pyx_L1_error) - if (!PyDict_GetItemString(modules, "talib._ta_lib")) { - if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(4, 1, __pyx_L1_error) + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); } } - #endif - /*--- Builtin init code ---*/ - if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - /*--- Constants init code ---*/ - if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - /*--- Global type/function init code ---*/ - (void)__Pyx_modinit_global_init_code(); - (void)__Pyx_modinit_variable_export_code(); - (void)__Pyx_modinit_function_export_code(); - (void)__Pyx_modinit_type_init_code(); - if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(4, 1, __pyx_L1_error) - (void)__Pyx_modinit_variable_import_code(); - (void)__Pyx_modinit_function_import_code(); - /*--- Execution code ---*/ - #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) - if (__Pyx_patch_abc() < 0) __PYX_ERR(4, 1, __pyx_L1_error) - #endif + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 579, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 579, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_common.pxi":4 - * from _ta_lib cimport TA_RetCode, TA_FuncUnstId - * - * __ta_version__ = lib.TA_GetVersionString() # <<<<<<<<<<<<<< - * - * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_392stream_CDL2CROWS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":599 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_version, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":6 - * __ta_version__ = lib.TA_GetVersionString() - * - * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< - * if ret_code == 0: - * return True + /* "talib/_stream.pxi":600 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_n_s_ta_check_success, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_check_success, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_common.pxi":50 - * function_name, ret_code, description)) - * - * def _ta_initialize(): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_Initialize() + /* "talib/_stream.pxi":601 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_n_s_ta_initialize, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_initialize, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 601, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":55 - * _ta_check_success('TA_Initialize', ret_code) - * - * def _ta_shutdown(): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_Shutdown() + /* "talib/_stream.pxi":602 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_n_s_ta_shutdown, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_shutdown, __pyx_t_2) < 0) __PYX_ERR(0, 55, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_common.pxi":60 - * _ta_check_success('TA_Shutdown', ret_code) - * - * class MA_Type(object): # <<<<<<<<<<<<<< - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) - * + /* "talib/_stream.pxi":603 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__19); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_n_s_MA_Type, __pyx_n_s_MA_Type, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (__pyx_t_2 != __pyx_tuple__19) { - if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_tuple__19) < 0))) __PYX_ERR(0, 60, __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(4, 603, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":61 - * - * class MA_Type(object): - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< - * - * def __init__(self): + /* "talib/_stream.pxi":604 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __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 != 9)) { - if (size > 9) __Pyx_RaiseTooManyValuesError(9); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 61, __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_t_7 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 5); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 6); - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 7); - __pyx_t_14 = PyTuple_GET_ITEM(sequence, 8); - } else { - __pyx_t_6 = PyList_GET_ITEM(sequence, 0); - __pyx_t_7 = PyList_GET_ITEM(sequence, 1); - __pyx_t_8 = PyList_GET_ITEM(sequence, 2); - __pyx_t_9 = PyList_GET_ITEM(sequence, 3); - __pyx_t_10 = PyList_GET_ITEM(sequence, 4); - __pyx_t_11 = PyList_GET_ITEM(sequence, 5); - __pyx_t_12 = PyList_GET_ITEM(sequence, 6); - __pyx_t_13 = PyList_GET_ITEM(sequence, 7); - __pyx_t_14 = PyList_GET_ITEM(sequence, 8); - } - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_14); - #else - { - Py_ssize_t i; - PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; - for (i=0; i < 9; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; - __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_15); - for (index=0; index < 9; index++) { - PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - goto __pyx_L3_unpacking_done; - __pyx_L2_unpacking_failed:; - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 61, __pyx_L1_error) - __pyx_L3_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_EMA, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_WMA, __pyx_t_8) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_DEMA, __pyx_t_9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TEMA, __pyx_t_10) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TRIMA, __pyx_t_11) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_KAMA, __pyx_t_12) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_MAMA, __pyx_t_13) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_T3, __pyx_t_14) < 0) __PYX_ERR(0, 61, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_common.pxi":63 - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) - * - * def __init__(self): # <<<<<<<<<<<<<< - * self._lookup = { - * MA_Type.SMA: 'Simple Moving Average', + /* "talib/_stream.pxi":605 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_n_s_MA_Type___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(0, 63, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":76 - * } - * - * def __getitem__(self, type_): # <<<<<<<<<<<<<< - * return self._lookup[type_] - * + /* "talib/_stream.pxi":606 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_n_s_MA_Type___getitem, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_getitem, __pyx_t_5) < 0) __PYX_ERR(0, 76, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_common.pxi":60 - * _ta_check_success('TA_Shutdown', ret_code) - * - * class MA_Type(object): # <<<<<<<<<<<<<< - * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) - * + /* "talib/_stream.pxi":607 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 60, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_5) < 0) __PYX_ERR(0, 60, __pyx_L1_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_DECREF(__pyx_t_2); __pyx_t_2 = 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(4, 607, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_common.pxi":79 - * return self._lookup[type_] - * - * MA_Type = MA_Type() # <<<<<<<<<<<<<< - * - * _ta_func_unst_ids = {'NONE': -1} + /* "talib/_stream.pxi":608 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL2CROWS", retCode) */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_outinteger = 0; - /* "talib/_common.pxi":81 - * MA_Type = MA_Type() - * - * _ta_func_unst_ids = {'NONE': -1} # <<<<<<<<<<<<<< - * for i, name in enumerate([ - * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + /* "talib/_stream.pxi":609 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL2CROWS", retCode) + * return outinteger */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_NONE, __pyx_int_neg_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_func_unst_ids, __pyx_t_3) < 0) __PYX_ERR(0, 81, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_CDL2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_common.pxi":82 + /* "talib/_stream.pxi":610 + * outinteger = 0 + * retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL2CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger * - * _ta_func_unst_ids = {'NONE': -1} - * for i, name in enumerate([ # <<<<<<<<<<<<<< - * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', - * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', */ - __Pyx_INCREF(__pyx_int_0); - __pyx_t_3 = __pyx_int_0; - __pyx_t_2 = PyList_New(24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF(__pyx_n_s_ADX); - __Pyx_GIVEREF(__pyx_n_s_ADX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ADX)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADXR); - __Pyx_GIVEREF(__pyx_n_s_ADXR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_ADXR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATR); - __Pyx_GIVEREF(__pyx_n_s_ATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ATR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CMO); - __Pyx_GIVEREF(__pyx_n_s_CMO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_CMO)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_DX); - __Pyx_GIVEREF(__pyx_n_s_DX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_DX)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_EMA); - __Pyx_GIVEREF(__pyx_n_s_EMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_EMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); - __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_PHASOR); - __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_HT_PHASOR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_SINE); - __Pyx_GIVEREF(__pyx_n_s_HT_SINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_HT_SINE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); - __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_KAMA); - __Pyx_GIVEREF(__pyx_n_s_KAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_KAMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MAMA); - __Pyx_GIVEREF(__pyx_n_s_MAMA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_MAMA)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MFI); - __Pyx_GIVEREF(__pyx_n_s_MFI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_MFI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DI); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_MINUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_MINUS_DM); - __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 16, __pyx_n_s_MINUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_NATR); - __Pyx_GIVEREF(__pyx_n_s_NATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 17, __pyx_n_s_NATR)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DI); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 18, __pyx_n_s_PLUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_PLUS_DM); - __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 19, __pyx_n_s_PLUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_RSI); - __Pyx_GIVEREF(__pyx_n_s_RSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 20, __pyx_n_s_RSI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_STOCHRSI); - __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 21, __pyx_n_s_STOCHRSI)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_T3); - __Pyx_GIVEREF(__pyx_n_s_T3); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 22, __pyx_n_s_T3)) __PYX_ERR(0, 82, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ALL); - __Pyx_GIVEREF(__pyx_n_s_ALL); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 23, __pyx_n_s_ALL)) __PYX_ERR(0, 82, __pyx_L1_error); - __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); - __pyx_t_17 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - for (;;) { - if (__pyx_t_17 >= 24) break; - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error) - #else - __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - #endif - if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_3) < 0) __PYX_ERR(0, 82, __pyx_L1_error) - __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_3); - __pyx_t_3 = __pyx_t_2; - __pyx_t_2 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_common.pxi":88 - * 'NATR', 'PLUS_DI', 'PLUS_DM', 'RSI', 'STOCHRSI', 'T3', 'ALL' - * ]): - * _ta_func_unst_ids[name] = i # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":611 + * retCode = lib.TA_CDL2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL2CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * def _ta_set_unstable_period(name, period): + * @wraparound(False) # turn off relative indexing from end of lists */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_5); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_14, __pyx_t_2) < 0))) __PYX_ERR(0, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 611, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_common.pxi":82 + /* "talib/_stream.pxi":577 + * return outreal * - * _ta_func_unst_ids = {'NONE': -1} - * for i, name in enumerate([ # <<<<<<<<<<<<<< - * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', - * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - } - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_common.pxi":90 - * _ta_func_unst_ids[name] = i + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":613 + * return outinteger * - * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_n_s_ta_set_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 90, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_common.pxi":96 - * _ta_check_success('TA_SetUnstablePeriod', ret_code) - * - * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< - * cdef unsigned int period - * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS, " CDL3BLACKCROWS(open, high, low, close)\n\n Three Black Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS = {"stream_CDL3BLACKCROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_394stream_CDL3BLACKCROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_395stream_CDL3BLACKCROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3BLACKCROWS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 1); __PYX_ERR(4, 613, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 2); __PYX_ERR(4, 613, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 613, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3BLACKCROWS", 1, 4, 4, 3); __PYX_ERR(4, 613, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3BLACKCROWS") < 0)) __PYX_ERR(4, 613, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3BLACKCROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 613, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 615, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 615, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 615, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 615, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_394stream_CDL3BLACKCROWS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":635 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_n_s_ta_get_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 96, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":102 - * return period - * - * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_SetCompatibility(value) + /* "talib/_stream.pxi":636 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_n_s_ta_set_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 102, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_common.pxi":107 - * _ta_check_success('TA_SetCompatibility', ret_code) - * - * def _ta_get_compatibility(): # <<<<<<<<<<<<<< - * cdef int value - * value = lib.TA_GetCompatibility() + /* "talib/_stream.pxi":637 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_n_s_ta_get_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 637, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":112 - * return value - * - * class CandleSettingType(object): # <<<<<<<<<<<<<< - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + /* "talib/_stream.pxi":638 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_tuple__34); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_CandleSettingType, __pyx_n_s_CandleSettingType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_3 != __pyx_tuple__34) { - if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__34) < 0))) __PYX_ERR(0, 112, __pyx_L1_error) - } + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_common.pxi":115 - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ - * range(12) # <<<<<<<<<<<<<< - * - * CandleSettingType = CandleSettingType() + /* "talib/_stream.pxi":639 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 115, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { - PyObject* sequence = __pyx_t_14; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 12)) { - if (size > 12) __Pyx_RaiseTooManyValuesError(12); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 113, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); - __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); - __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); - __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); - __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); - __pyx_t_7 = PyTuple_GET_ITEM(sequence, 7); - __pyx_t_6 = PyTuple_GET_ITEM(sequence, 8); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 9); - __pyx_t_18 = PyTuple_GET_ITEM(sequence, 10); - __pyx_t_19 = PyTuple_GET_ITEM(sequence, 11); - } else { - __pyx_t_5 = PyList_GET_ITEM(sequence, 0); - __pyx_t_13 = PyList_GET_ITEM(sequence, 1); - __pyx_t_12 = PyList_GET_ITEM(sequence, 2); - __pyx_t_11 = PyList_GET_ITEM(sequence, 3); - __pyx_t_10 = PyList_GET_ITEM(sequence, 4); - __pyx_t_9 = PyList_GET_ITEM(sequence, 5); - __pyx_t_8 = PyList_GET_ITEM(sequence, 6); - __pyx_t_7 = PyList_GET_ITEM(sequence, 7); - __pyx_t_6 = PyList_GET_ITEM(sequence, 8); - __pyx_t_15 = PyList_GET_ITEM(sequence, 9); - __pyx_t_18 = PyList_GET_ITEM(sequence, 10); - __pyx_t_19 = PyList_GET_ITEM(sequence, 11); - } - __Pyx_INCREF(__pyx_t_5); - __Pyx_INCREF(__pyx_t_13); - __Pyx_INCREF(__pyx_t_12); - __Pyx_INCREF(__pyx_t_11); - __Pyx_INCREF(__pyx_t_10); - __Pyx_INCREF(__pyx_t_9); - __Pyx_INCREF(__pyx_t_8); - __Pyx_INCREF(__pyx_t_7); - __Pyx_INCREF(__pyx_t_6); - __Pyx_INCREF(__pyx_t_15); - __Pyx_INCREF(__pyx_t_18); - __Pyx_INCREF(__pyx_t_19); - #else - { - Py_ssize_t i; - PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; - for (i=0; i < 12; i++) { - PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_GOTREF(item); - *(temps[i]) = item; - } - } - #endif - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - } else { - Py_ssize_t index = -1; - PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; - __pyx_t_20 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_20); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_20); - for (index=0; index < 12; index++) { - PyObject* item = __pyx_t_16(__pyx_t_20); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; - __Pyx_GOTREF(item); - *(temps[index]) = item; - } - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_20), 12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - goto __pyx_L8_unpacking_done; - __pyx_L7_unpacking_failed:; - __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 113, __pyx_L1_error) - __pyx_L8_unpacking_done:; - } + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":113 - * - * class CandleSettingType(object): - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ # <<<<<<<<<<<<<< - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ - * range(12) + /* "talib/_stream.pxi":640 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyLong, __pyx_t_5) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyVeryLong, __pyx_t_13) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyShort, __pyx_t_12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyDoji, __pyx_t_11) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowLong, __pyx_t_10) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryLong, __pyx_t_9) < 0) __PYX_ERR(0, 113, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowShort, __pyx_t_8) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryShort, __pyx_t_7) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Near, __pyx_t_6) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Far, __pyx_t_15) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Equal, __pyx_t_18) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_AllCandleSettings, __pyx_t_19) < 0) __PYX_ERR(0, 114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_common.pxi":112 - * return value - * - * class CandleSettingType(object): # <<<<<<<<<<<<<< - * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ - * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + /* "talib/_stream.pxi":641 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_CandleSettingType, __pyx_t_3, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_14) < 0) __PYX_ERR(0, 112, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__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; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_common.pxi":117 - * range(12) - * - * CandleSettingType = CandleSettingType() # <<<<<<<<<<<<<< - * - * class RangeType(object): + /* "talib/_stream.pxi":642 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_4) < 0) __PYX_ERR(0, 117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_common.pxi":119 - * CandleSettingType = CandleSettingType() - * - * class RangeType(object): # <<<<<<<<<<<<<< - * RealBody, HighLow, Shadows = range(3) - * + /* "talib/_stream.pxi":643 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_tuple__37); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_4, __pyx_n_s_RangeType, __pyx_n_s_RangeType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (__pyx_t_4 != __pyx_tuple__37) { - if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__37) < 0))) __PYX_ERR(0, 119, __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(4, 643, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_common.pxi":120 - * - * class RangeType(object): - * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< - * - * RangeType = RangeType() + /* "talib/_stream.pxi":644 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) */ - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { - PyObject* sequence = __pyx_t_14; - Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); - if (unlikely(size != 3)) { - if (size > 3) __Pyx_RaiseTooManyValuesError(3); - else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); - __PYX_ERR(0, 120, __pyx_L1_error) - } - #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - if (likely(PyTuple_CheckExact(sequence))) { - __pyx_t_19 = PyTuple_GET_ITEM(sequence, 0); - __pyx_t_18 = PyTuple_GET_ITEM(sequence, 1); - __pyx_t_15 = PyTuple_GET_ITEM(sequence, 2); - } else { - __pyx_t_19 = PyList_GET_ITEM(sequence, 0); - __pyx_t_18 = PyList_GET_ITEM(sequence, 1); - __pyx_t_15 = PyList_GET_ITEM(sequence, 2); - } - __Pyx_INCREF(__pyx_t_19); - __Pyx_INCREF(__pyx_t_18); - __Pyx_INCREF(__pyx_t_15); - #else - __pyx_t_19 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - #endif - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - } else { - Py_ssize_t index = -1; - __pyx_t_6 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); - index = 0; __pyx_t_19 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_19); - index = 1; __pyx_t_18 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_18)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_18); - index = 2; __pyx_t_15 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_15)) goto __pyx_L9_unpacking_failed; - __Pyx_GOTREF(__pyx_t_15); - if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 3) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __pyx_t_16 = NULL; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - goto __pyx_L10_unpacking_done; - __pyx_L9_unpacking_failed:; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_16 = NULL; - if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); - __PYX_ERR(0, 120, __pyx_L1_error) - __pyx_L10_unpacking_done:; - } - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_RealBody, __pyx_t_19) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_HighLow, __pyx_t_18) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Shadows, __pyx_t_15) < 0) __PYX_ERR(0, 120, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_v_outinteger = 0; - /* "talib/_common.pxi":119 - * CandleSettingType = CandleSettingType() - * - * class RangeType(object): # <<<<<<<<<<<<<< - * RealBody, HighLow, Shadows = range(3) - * + /* "talib/_stream.pxi":645 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) + * return outinteger */ - __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_RangeType, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_14) < 0) __PYX_ERR(0, 119, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 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_v_retCode = TA_CDL3BLACKCROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_common.pxi":122 - * RealBody, HighLow, Shadows = range(3) - * - * RangeType = RangeType() # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":646 + * outinteger = 0 + * retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger * - * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_3) < 0) __PYX_ERR(0, 122, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_common.pxi":124 - * RangeType = RangeType() - * - * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_n_s_ta_set_candle_settings, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_candle_settings, __pyx_t_3) < 0) __PYX_ERR(0, 124, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_common.pxi":129 - * _ta_check_success('TA_SetCandleSettings', ret_code) - * - * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< - * cdef TA_RetCode ret_code - * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_n_s_ta_restore_candle_default_setti, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_restore_candle_default_setti, __pyx_t_3) < 0) __PYX_ERR(0, 129, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2 - * cimport numpy as np - * from numpy import nan # <<<<<<<<<<<<<< - * from cython import boundscheck, wraparound - * - */ - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_n_s_nan); - __Pyx_GIVEREF(__pyx_n_s_nan); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_nan)) __PYX_ERR(3, 2, __pyx_L1_error); - __pyx_t_4 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_3, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_nan, __pyx_t_3) < 0) __PYX_ERR(3, 2, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "talib/_func.pxi":7 - * # _ta_check_success: defined in _common.pxi - * - * cdef double NaN = nan # <<<<<<<<<<<<<< - * - * cdef extern from "numpy/arrayobject.h": - */ - __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_21; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 646, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":15 - * np.ndarray PyArray_GETCONTIGUOUS(np.ndarray) - * - * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":647 + * retCode = lib.TA_CDL3BLACKCROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3BLACKCROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * cimport _ta_lib as lib + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(3, 15, __pyx_L1_error) + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":142 - * + /* "talib/_stream.pxi":613 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def ACOS( np.ndarray real not None ): + * def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACOS, 0, __pyx_n_s_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_4) < 0) __PYX_ERR(3, 142, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_func.pxi":171 - * return outreal + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3BLACKCROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":649 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + * def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AD, 0, __pyx_n_s_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_4) < 0) __PYX_ERR(3, 171, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_func.pxi":203 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE, " CDL3INSIDE(open, high, low, close)\n\n Three Inside Up/Down (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE = {"stream_CDL3INSIDE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_396stream_CDL3INSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_397stream_CDL3INSIDE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3INSIDE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 1); __PYX_ERR(4, 649, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 2); __PYX_ERR(4, 649, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 649, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3INSIDE", 1, 4, 4, 3); __PYX_ERR(4, 649, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3INSIDE") < 0)) __PYX_ERR(4, 649, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3INSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 649, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 651, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 651, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 651, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 651, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_396stream_CDL3INSIDE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":671 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ADD, 0, __pyx_n_s_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(3, 203, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":236 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADOSC( 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 ): # <<<<<<<<<<<<<< - * """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) - * + /* "talib/_stream.pxi":672 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 236, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":234 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADOSC( 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 ): + /* "talib/_stream.pxi":673 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4)) __PYX_ERR(3, 234, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADOSC, 0, __pyx_n_s_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(3, 234, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":271 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ADX(high, low, close[, timeperiod=?]) - * + /* "talib/_stream.pxi":674 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 271, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":269 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":675 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADX, 0, __pyx_n_s_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(3, 269, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":304 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ADXR(high, low, close[, timeperiod=?]) - * + /* "talib/_stream.pxi":676 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 304, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":302 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":677 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADXR, 0, __pyx_n_s_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(3, 302, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":337 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< - * """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) - * + /* "talib/_stream.pxi":678 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":335 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + /* "talib/_stream.pxi":679 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(3, 335, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 335, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_2 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31APO, 0, __pyx_n_s_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_4) < 0) __PYX_ERR(3, 335, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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(4, 679, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":370 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ AROON(high, low[, timeperiod=?]) - * + /* "talib/_stream.pxi":680 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3INSIDE", retCode) */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":368 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":681 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3INSIDE", retCode) + * return outinteger */ - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33AROON, 0, __pyx_n_s_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_4) < 0) __PYX_ERR(3, 368, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_retCode = TA_CDL3INSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":405 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ AROONOSC(high, low[, timeperiod=?]) + /* "talib/_stream.pxi":682 + * outinteger = 0 + * retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3INSIDE", retCode) # <<<<<<<<<<<<<< + * return outinteger * */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 405, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDL3INSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":403 - * return outaroondown , outaroonup + /* "talib/_stream.pxi":683 + * retCode = lib.TA_CDL3INSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3INSIDE", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROONOSC, 0, __pyx_n_s_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_4) < 0) __PYX_ERR(3, 403, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":435 - * return outreal + /* "talib/_stream.pxi":649 + * return outinteger * * @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 ): + * def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ASIN, 0, __pyx_n_s_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 435, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_4) < 0) __PYX_ERR(3, 435, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_func.pxi":464 - * return outreal + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3INSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":685 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def ATAN( np.ndarray real not None ): + * def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ATAN, 0, __pyx_n_s_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 464, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_4) < 0) __PYX_ERR(3, 464, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_func.pxi":495 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ATR(high, low, close[, timeperiod=?]) - * - */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 495, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - - /* "talib/_func.pxi":493 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATR, 0, __pyx_n_s_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_4) < 0) __PYX_ERR(3, 493, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE, " CDL3LINESTRIKE(open, high, low, close)\n\n Three-Line Strike (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE = {"stream_CDL3LINESTRIKE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_398stream_CDL3LINESTRIKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_399stream_CDL3LINESTRIKE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3LINESTRIKE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 1); __PYX_ERR(4, 685, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 2); __PYX_ERR(4, 685, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 685, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3LINESTRIKE", 1, 4, 4, 3); __PYX_ERR(4, 685, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3LINESTRIKE") < 0)) __PYX_ERR(4, 685, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3LINESTRIKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 685, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 687, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 687, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 687, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 687, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":526 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AVGPRICE, 0, __pyx_n_s_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_4) < 0) __PYX_ERR(3, 526, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":560 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): # <<<<<<<<<<<<<< - * """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) - * - */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 560, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); +static PyObject *__pyx_pf_5talib_7_ta_lib_398stream_CDL3LINESTRIKE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":558 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + /* "talib/_stream.pxi":707 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_2)) __PYX_ERR(3, 558, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45BBANDS, 0, __pyx_n_s_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(3, 558, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":600 - * @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 ): # <<<<<<<<<<<<<< - * """ BETA(real0, real1[, timeperiod=?]) - * + /* "talib/_stream.pxi":708 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":598 - * return outrealupperband , outrealmiddleband , outreallowerband - * - * @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 ): + /* "talib/_stream.pxi":709 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47BETA, 0, __pyx_n_s_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(3, 598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 709, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":631 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":710 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BOP, 0, __pyx_n_s_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 631, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(3, 631, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":665 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ CCI(high, low, close[, timeperiod=?]) - * + /* "talib/_stream.pxi":711 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 665, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":663 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":712 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51CCI, 0, __pyx_n_s_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(3, 663, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":696 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":713 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53CDL2CROWS, 0, __pyx_n_s_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":728 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":714 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS, 0, __pyx_n_s_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(3, 728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":760 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":715 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE, 0, __pyx_n_s_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 760, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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(4, 715, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":792 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":716 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE, 0, __pyx_n_s_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(3, 792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":824 + /* "talib/_stream.pxi":717 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE, 0, __pyx_n_s_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 824, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_CDL3LINESTRIKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":856 + /* "talib/_stream.pxi":718 + * outinteger = 0 + * retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) # <<<<<<<<<<<<<< * return outinteger * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH, 0, __pyx_n_s_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(3, 856, __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_n_s_TA_CDL3LINESTRIKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 718, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":888 - * return outinteger + /* "talib/_stream.pxi":719 + * retCode = lib.TA_CDL3LINESTRIKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3LINESTRIKE", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS, 0, __pyx_n_s_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(3, 888, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":922 * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< - * """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 922, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":920 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY, 0, __pyx_n_s_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(3, 920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":954 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK, 0, __pyx_n_s_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(3, 954, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":986 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD, 0, __pyx_n_s_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 986, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 986, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1018 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY, 0, __pyx_n_s_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(3, 1018, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 719, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":1050 + /* "talib/_stream.pxi":685 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, 0, __pyx_n_s_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":1082 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, 0, __pyx_n_s_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1082, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(3, 1082, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3LINESTRIKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":1114 +/* "talib/_stream.pxi":721 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK, 0, __pyx_n_s_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1114, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(3, 1114, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1148 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< - * """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) - * + * def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - /* "talib/_func.pxi":1146 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, 0, __pyx_n_s_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(3, 1146, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1180 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLDOJI, 0, __pyx_n_s_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1180, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1180, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1212 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR, 0, __pyx_n_s_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1212, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1212, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1244 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, 0, __pyx_n_s_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1244, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1244, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1276 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLENGULFING, 0, __pyx_n_s_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(3, 1276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1310 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< - * """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":1308 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, 0, __pyx_n_s_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1308, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1344 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< - * """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1344, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":1342 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR, 0, __pyx_n_s_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":1376 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1376, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(3, 1376, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE, " CDL3OUTSIDE(open, high, low, close)\n\n Three Outside Up/Down (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE = {"stream_CDL3OUTSIDE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_400stream_CDL3OUTSIDE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_401stream_CDL3OUTSIDE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3OUTSIDE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 1); __PYX_ERR(4, 721, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 2); __PYX_ERR(4, 721, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 721, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3OUTSIDE", 1, 4, 4, 3); __PYX_ERR(4, 721, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3OUTSIDE") < 0)) __PYX_ERR(4, 721, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3OUTSIDE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 721, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 723, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 723, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 723, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 723, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":1408 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, 0, __pyx_n_s_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1408, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1408, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":1440 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLHAMMER, 0, __pyx_n_s_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1440, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1440, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_400stream_CDL3OUTSIDE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":1472 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":743 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN, 0, __pyx_n_s_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1472, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(3, 1472, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1504 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":744 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHARAMI, 0, __pyx_n_s_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1504, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(3, 1504, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":1536 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":745 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS, 0, __pyx_n_s_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1536, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(3, 1536, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 745, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1568 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":746 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE, 0, __pyx_n_s_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1568, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(3, 1568, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":1600 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":747 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE, 0, __pyx_n_s_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1600, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(3, 1600, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 747, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1632 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":748 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD, 0, __pyx_n_s_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1632, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(3, 1632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":1664 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":749 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON, 0, __pyx_n_s_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1664, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(3, 1664, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":1696 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":750 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, 0, __pyx_n_s_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1696, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 1696, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":1728 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":751 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLINNECK, 0, __pyx_n_s_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1728, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(3, 1728, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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(4, 751, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":1760 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":752 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER, 0, __pyx_n_s_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1760, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1760, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":1792 + /* "talib/_stream.pxi":753 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3OUTSIDE", retCode) * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLKICKING, 0, __pyx_n_s_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1792, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(3, 1792, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_CDL3OUTSIDE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":1824 + /* "talib/_stream.pxi":754 + * outinteger = 0 + * retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) # <<<<<<<<<<<<<< * return outinteger * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, 0, __pyx_n_s_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1824, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(3, 1824, __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_n_s_TA_CDL3OUTSIDE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 754, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":1856 - * return outinteger + /* "talib/_stream.pxi":755 + * retCode = lib.TA_CDL3OUTSIDE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3OUTSIDE", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM, 0, __pyx_n_s_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1856, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(3, 1856, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":1888 + /* "talib/_stream.pxi":721 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, 0, __pyx_n_s_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1888, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1888, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":1920 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE, 0, __pyx_n_s_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1920, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(3, 1920, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3OUTSIDE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":1952 +/* "talib/_stream.pxi":757 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU, 0, __pyx_n_s_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1952, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1952, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":1984 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW, 0, __pyx_n_s_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1984, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(3, 1984, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2018 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< - * """ CDLMATHOLD(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2018, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":2016 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD, 0, __pyx_n_s_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 2016, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2052 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< - * """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2052, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":2050 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, 0, __pyx_n_s_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2050, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2086 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< - * """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) - * - */ - __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2086, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":2084 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR, 0, __pyx_n_s_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2084, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH, " CDL3STARSINSOUTH(open, high, low, close)\n\n Three Stars In The South (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH = {"stream_CDL3STARSINSOUTH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3STARSINSOUTH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 1); __PYX_ERR(4, 757, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 2); __PYX_ERR(4, 757, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 757, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3STARSINSOUTH", 1, 4, 4, 3); __PYX_ERR(4, 757, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3STARSINSOUTH") < 0)) __PYX_ERR(4, 757, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3STARSINSOUTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 757, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 759, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 759, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":2118 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLONNECK, 0, __pyx_n_s_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2118, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(3, 2118, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":2150 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLPIERCING, 0, __pyx_n_s_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2150, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(3, 2150, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_402stream_CDL3STARSINSOUTH(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":2182 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":779 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN, 0, __pyx_n_s_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2182, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(3, 2182, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2214 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":780 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS, 0, __pyx_n_s_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2214, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":2246 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":781 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES, 0, __pyx_n_s_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2246, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(3, 2246, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 781, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2278 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":782 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR, 0, __pyx_n_s_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2278, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2278, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":2310 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":783 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE, 0, __pyx_n_s_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2310, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(3, 2310, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 783, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2342 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":784 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP, 0, __pyx_n_s_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2342, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(3, 2342, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":2374 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":785 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN, 0, __pyx_n_s_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2374, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(3, 2374, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2406 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":786 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH, 0, __pyx_n_s_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2406, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(3, 2406, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":2438 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":787 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLTAKURI, 0, __pyx_n_s_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2438, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(3, 2438, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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(4, 787, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":2470 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":788 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP, 0, __pyx_n_s_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2470, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(3, 2470, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":2502 + /* "talib/_stream.pxi":789 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING, 0, __pyx_n_s_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2502, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(3, 2502, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_CDL3STARSINSOUTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":2534 + /* "talib/_stream.pxi":790 + * outinteger = 0 + * retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) # <<<<<<<<<<<<<< * return outinteger * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR, 0, __pyx_n_s_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2534, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2534, __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_n_s_TA_CDL3STARSINSOUTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":2566 - * return outinteger + /* "talib/_stream.pxi":791 + * retCode = lib.TA_CDL3STARSINSOUTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3STARSINSOUTH", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER, 0, __pyx_n_s_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2566, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(3, 2566, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 791, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":2598 + /* "talib/_stream.pxi":757 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + * def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2598, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 2598, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":2630 - * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, 0, __pyx_n_s_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2630, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2630, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3STARSINSOUTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":2662 +/* "talib/_stream.pxi":793 * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def CEIL( np.ndarray real not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CEIL, 0, __pyx_n_s_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2662, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(3, 2662, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2693 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ CMO(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2693, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":2691 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CMO, 0, __pyx_n_s_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(3, 2691, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2724 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ CORREL(real0, real1[, timeperiod=?]) - * + * def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2724, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - /* "talib/_func.pxi":2722 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CORREL, 0, __pyx_n_s_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(3, 2722, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2755 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def COS( np.ndarray real not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181COS, 0, __pyx_n_s_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(3, 2755, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":2784 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def COSH( np.ndarray real not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183COSH, 0, __pyx_n_s_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(3, 2784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS, " CDL3WHITESOLDIERS(open, high, low, close)\n\n Three Advancing White Soldiers (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS = {"stream_CDL3WHITESOLDIERS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDL3WHITESOLDIERS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 1); __PYX_ERR(4, 793, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 2); __PYX_ERR(4, 793, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 793, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDL3WHITESOLDIERS", 1, 4, 4, 3); __PYX_ERR(4, 793, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDL3WHITESOLDIERS") < 0)) __PYX_ERR(4, 793, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDL3WHITESOLDIERS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 793, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 795, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 795, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":2815 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ DEMA(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2815, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":2813 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185DEMA, 0, __pyx_n_s_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(3, 2813, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_404stream_CDL3WHITESOLDIERS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":2844 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + /* "talib/_stream.pxi":815 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187DIV, 0, __pyx_n_s_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2844, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(3, 2844, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2877 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ DX(high, low, close[, timeperiod=?]) - * + /* "talib/_stream.pxi":816 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2877, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":2875 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":817 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DX, 0, __pyx_n_s_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(3, 2875, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2910 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ EMA(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":818 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2910, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":2908 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":819 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191EMA, 0, __pyx_n_s_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(3, 2908, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2939 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def EXP( np.ndarray real not None ): + /* "talib/_stream.pxi":820 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193EXP, 0, __pyx_n_s_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2939, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(3, 2939, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":2968 - * return outreal - * - * @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 ): + /* "talib/_stream.pxi":821 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195FLOOR, 0, __pyx_n_s_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2968, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(3, 2968, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":2997 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_DCPERIOD( np.ndarray real not None ): + /* "talib/_stream.pxi":822 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD, 0, __pyx_n_s_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2997, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPERIOD, __pyx_t_3) < 0) __PYX_ERR(3, 2997, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":3026 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_DCPHASE( np.ndarray real not None ): + /* "talib/_stream.pxi":823 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE, 0, __pyx_n_s_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3026, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPHASE, __pyx_t_3) < 0) __PYX_ERR(3, 3026, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 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(4, 823, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":3055 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_PHASOR( np.ndarray real not None ): + /* "talib/_stream.pxi":824 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_PHASOR, 0, __pyx_n_s_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_PHASOR, __pyx_t_3) < 0) __PYX_ERR(3, 3055, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":3087 - * return outinphase , outquadrature - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_SINE( np.ndarray real not None ): + /* "talib/_stream.pxi":825 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + * return outinteger */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_SINE, 0, __pyx_n_s_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_SINE, __pyx_t_3) < 0) __PYX_ERR(3, 3087, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_retCode = TA_CDL3WHITESOLDIERS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":3119 - * return outsine , outleadsine + /* "talib/_stream.pxi":826 + * outinteger = 0 + * retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) # <<<<<<<<<<<<<< + * return outinteger * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_TRENDLINE( np.ndarray real not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE, 0, __pyx_n_s_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3119, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDLINE, __pyx_t_3) < 0) __PYX_ERR(3, 3119, __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_n_s_TA_CDL3WHITESOLDIERS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 826, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3148 - * return outreal + /* "talib/_stream.pxi":827 + * retCode = lib.TA_CDL3WHITESOLDIERS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDL3WHITESOLDIERS", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def HT_TRENDMODE( np.ndarray real not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE, 0, __pyx_n_s_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDMODE, __pyx_t_3) < 0) __PYX_ERR(3, 3148, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":3179 * @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=?]) - * */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 827, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3177 + /* "talib/_stream.pxi":793 * return outinteger * * @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 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209KAMA, 0, __pyx_n_s_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(3, 3177, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":3210 - * @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 ): # <<<<<<<<<<<<<< - * """ LINEARREG(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3210, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - - /* "talib/_func.pxi":3208 - * return outreal - * - * @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 ): + * def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211LINEARREG, 0, __pyx_n_s_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(3, 3208, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":3241 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ LINEARREG_ANGLE(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3241, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDL3WHITESOLDIERS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":3239 - * return outreal +/* "talib/_stream.pxi":829 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE, 0, __pyx_n_s_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(3, 3239, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - - /* "talib/_func.pxi":3272 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ LINEARREG_INTERCEPT(real[, timeperiod=?]) - * + * def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3272, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - /* "talib/_func.pxi":3270 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT, 0, __pyx_n_s_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(3, 3270, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY, " CDLABANDONEDBABY(open, high, low, close[, penetration=?])\n\n Abandoned Baby (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY = {"stream_CDLABANDONEDBABY", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_406stream_CDLABANDONEDBABY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_407stream_CDLABANDONEDBABY(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLABANDONEDBABY (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 1); __PYX_ERR(4, 829, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 2); __PYX_ERR(4, 829, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, 3); __PYX_ERR(4, 829, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 829, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLABANDONEDBABY") < 0)) __PYX_ERR(4, 829, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 831, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLABANDONEDBABY", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 829, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 831, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 831, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 831, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 831, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); - /* "talib/_func.pxi":3303 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ LINEARREG_SLOPE(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3303, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":3301 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE, 0, __pyx_n_s_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(3, 3301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_406stream_CDLABANDONEDBABY(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":3332 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LN( np.ndarray real not None ): + /* "talib/_stream.pxi":853 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LN, 0, __pyx_n_s_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3332, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(3, 3332, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 853, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3361 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def LOG10( np.ndarray real not None ): + /* "talib/_stream.pxi":854 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LOG10, 0, __pyx_n_s_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3361, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(3, 3361, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":3392 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< - * """ MA(real[, timeperiod=?, matype=?]) - * + /* "talib/_stream.pxi":855 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3392, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 855, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3390 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + /* "talib/_stream.pxi":856 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 3390, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_15 = 0; - __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223MA, 0, __pyx_n_s_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_2); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_15) < 0) __PYX_ERR(3, 3390, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":3424 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) - * + /* "talib/_stream.pxi":857 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3424, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 857, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3422 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + /* "talib/_stream.pxi":858 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)) __PYX_ERR(3, 3422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error); - __pyx_t_15 = 0; - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225MACD, 0, __pyx_n_s_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_14); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(3, 3422, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":3463 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): # <<<<<<<<<<<<<< - * """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) - * + /* "talib/_stream.pxi":859 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3463, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 859, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3461 - * return outmacd , outmacdsignal , outmacdhist - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + /* "talib/_stream.pxi":860 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_19 = PyTuple_New(6); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_15)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_4)) __PYX_ERR(3, 3461, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227MACDEXT, 0, __pyx_n_s_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__168)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_18) < 0) __PYX_ERR(3, 3461, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":3505 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MACDFIX(real[, signalperiod=?]) - * + /* "talib/_stream.pxi":861 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3505, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 861, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":3503 - * return outmacd , outmacdsignal , outmacdhist - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + /* "talib/_stream.pxi":862 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MACDFIX, 0, __pyx_n_s_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__170)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_18) < 0) __PYX_ERR(3, 3503, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":3542 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): # <<<<<<<<<<<<<< - * """ MAMA(real[, fastlimit=?, slowlimit=?]) - * + /* "talib/_stream.pxi":863 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) + * return outinteger */ - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3542, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + __pyx_v_retCode = TA_CDLABANDONEDBABY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":3540 - * return outmacd , outmacdsignal , outmacdhist + /* "talib/_stream.pxi":864 + * outinteger = 0 + * retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) # <<<<<<<<<<<<<< + * return outinteger * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): */ - __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_18)) __PYX_ERR(3, 3540, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MAMA, 0, __pyx_n_s_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_4); - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_19) < 0) __PYX_ERR(3, 3540, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3577 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< - * """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) + /* "talib/_stream.pxi":865 + * retCode = lib.TA_CDLABANDONEDBABY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLABANDONEDBABY", retCode) + * return outinteger # <<<<<<<<<<<<<< * + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 865, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3575 - * return outmama , outfama + /* "talib/_stream.pxi":829 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + * def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): */ - __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19)) __PYX_ERR(3, 3575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_4)) __PYX_ERR(3, 3575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error); - __pyx_t_19 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MAVP, 0, __pyx_n_s_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_18) < 0) __PYX_ERR(3, 3575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_func.pxi":3612 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MAX(real[, timeperiod=?]) - * - */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3612, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLABANDONEDBABY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":3610 - * return outreal +/* "talib/_stream.pxi":867 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MAX, 0, __pyx_n_s_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_18) < 0) __PYX_ERR(3, 3610, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - - /* "talib/_func.pxi":3643 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MAXINDEX(real[, timeperiod=?]) - * + * def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3643, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - /* "talib/_func.pxi":3641 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAXINDEX, 0, __pyx_n_s_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3641, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK, " CDLADVANCEBLOCK(open, high, low, close)\n\n Advance Block (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK = {"stream_CDLADVANCEBLOCK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLADVANCEBLOCK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 1); __PYX_ERR(4, 867, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 2); __PYX_ERR(4, 867, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 867, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLADVANCEBLOCK", 1, 4, 4, 3); __PYX_ERR(4, 867, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLADVANCEBLOCK") < 0)) __PYX_ERR(4, 867, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLADVANCEBLOCK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 867, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 869, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 869, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 869, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 869, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":3675 - * return outinteger - * - * @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 ): - */ - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MEDPRICE, 0, __pyx_n_s_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3675, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":3707 - * @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=?]) - * - */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3707, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static PyObject *__pyx_pf_5talib_7_ta_lib_408stream_CDLADVANCEBLOCK(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":3705 - * 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 ): + /* "talib/_stream.pxi":889 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MFI, 0, __pyx_n_s_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_18) < 0) __PYX_ERR(3, 3705, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 889, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3741 - * @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=?]) - * + /* "talib/_stream.pxi":890 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3741, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":3739 - * 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 ): + /* "talib/_stream.pxi":891 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MIDPOINT, 0, __pyx_n_s_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_18) < 0) __PYX_ERR(3, 3739, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 891, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3772 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MIDPRICE(high, low[, timeperiod=?]) - * + /* "talib/_stream.pxi":892 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3772, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":3770 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":893 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MIDPRICE, 0, __pyx_n_s_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3770, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3804 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MIN(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":894 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3804, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":3802 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":895 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MIN, 0, __pyx_n_s_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_18) < 0) __PYX_ERR(3, 3802, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":3835 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MININDEX(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":896 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3835, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":3833 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":897 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MININDEX, 0, __pyx_n_s_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3833, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 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(4, 897, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":3869 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MINMAX(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":898 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3869, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":3867 + /* "talib/_stream.pxi":899 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) * return outinteger - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MINMAX, 0, __pyx_n_s_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_18) < 0) __PYX_ERR(3, 3867, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - - /* "talib/_func.pxi":3903 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MINMAXINDEX(real[, timeperiod=?]) - * - */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3903, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - - /* "talib/_func.pxi":3901 - * return outmin , outmax - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX, 0, __pyx_n_s_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3901, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_v_retCode = TA_CDLADVANCEBLOCK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":3943 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MINUS_DI(high, low, close[, timeperiod=?]) + /* "talib/_stream.pxi":900 + * outinteger = 0 + * retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) # <<<<<<<<<<<<<< + * return outinteger * */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3943, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":3941 - * return outminidx , outmaxidx + /* "talib/_stream.pxi":901 + * retCode = lib.TA_CDLADVANCEBLOCK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLADVANCEBLOCK", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MINUS_DI, 0, __pyx_n_s_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 3941, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - - /* "talib/_func.pxi":3976 * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MINUS_DM(high, low[, timeperiod=?]) - * */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3976, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":3974 - * return outreal + /* "talib/_stream.pxi":867 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINUS_DM, 0, __pyx_n_s_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 3974, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - - /* "talib/_func.pxi":4008 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ MOM(real[, timeperiod=?]) - * + * def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4008, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - /* "talib/_func.pxi":4006 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MOM, 0, __pyx_n_s_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_18) < 0) __PYX_ERR(3, 4006, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLADVANCEBLOCK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":4037 - * return outreal +/* "talib/_stream.pxi":903 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): - */ - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MULT, 0, __pyx_n_s_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4037, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_18) < 0) __PYX_ERR(3, 4037, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - - /* "talib/_func.pxi":4070 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ NATR(high, low, close[, timeperiod=?]) - * + * def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4070, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - /* "talib/_func.pxi":4068 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): - */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263NATR, 0, __pyx_n_s_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_18) < 0) __PYX_ERR(3, 4068, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD, " CDLBELTHOLD(open, high, low, close)\n\n Belt-hold (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD = {"stream_CDLBELTHOLD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_410stream_CDLBELTHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_411stream_CDLBELTHOLD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLBELTHOLD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 1); __PYX_ERR(4, 903, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 2); __PYX_ERR(4, 903, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 903, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBELTHOLD", 1, 4, 4, 3); __PYX_ERR(4, 903, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLBELTHOLD") < 0)) __PYX_ERR(4, 903, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLBELTHOLD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 903, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 905, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 905, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":4101 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def OBV( np.ndarray real not None , np.ndarray volume not None ): - */ - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265OBV, 0, __pyx_n_s_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_18) < 0) __PYX_ERR(3, 4101, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":4134 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ PLUS_DI(high, low, close[, timeperiod=?]) - * - */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4134, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); +static PyObject *__pyx_pf_5talib_7_ta_lib_410stream_CDLBELTHOLD(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":4132 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":925 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267PLUS_DI, 0, __pyx_n_s_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4132, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 925, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4167 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ PLUS_DM(high, low[, timeperiod=?]) - * + /* "talib/_stream.pxi":926 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4167, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":4165 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":927 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269PLUS_DM, 0, __pyx_n_s_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4165, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4199 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< - * """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) - * + /* "talib/_stream.pxi":928 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4199, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":4197 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + /* "talib/_stream.pxi":929 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_19 = PyTuple_New(3); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 4197, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_15)) __PYX_ERR(3, 4197, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error); - __pyx_t_18 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271PPO, 0, __pyx_n_s_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_4) < 0) __PYX_ERR(3, 4197, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4232 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ROC(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":930 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4232, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":4230 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":931 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273ROC, 0, __pyx_n_s_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_4) < 0) __PYX_ERR(3, 4230, __pyx_L1_error) - __Pyx_DECREF(__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(4, 931, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4263 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ROCP(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":932 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4263, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":4261 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":933 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275ROCP, 0, __pyx_n_s_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_4) < 0) __PYX_ERR(3, 4261, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 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(4, 933, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":4294 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ROCR(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":934 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4294, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":4292 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":935 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLBELTHOLD", retCode) + * return outinteger */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277ROCR, 0, __pyx_n_s_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_4) < 0) __PYX_ERR(3, 4292, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_retCode = TA_CDLBELTHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":4325 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ ROCR100(real[, timeperiod=?]) + /* "talib/_stream.pxi":936 + * outinteger = 0 + * retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) # <<<<<<<<<<<<<< + * return outinteger * */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4325, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBELTHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":4323 - * return outreal + /* "talib/_stream.pxi":937 + * retCode = lib.TA_CDLBELTHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBELTHOLD", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROCR100, 0, __pyx_n_s_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_4) < 0) __PYX_ERR(3, 4323, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - - /* "talib/_func.pxi":4356 * @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 ): # <<<<<<<<<<<<<< - * """ RSI(real[, timeperiod=?]) - * */ - __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4356, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 937, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":4354 - * return outreal + /* "talib/_stream.pxi":903 + * return outinteger * * @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 ): + * def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281RSI, 0, __pyx_n_s_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_4) < 0) __PYX_ERR(3, 4354, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_func.pxi":4387 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): # <<<<<<<<<<<<<< - * """ SAR(high, low[, acceleration=?, maximum=?]) - * - */ - __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_19 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4387, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLBELTHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":4385 - * return outreal +/* "talib/_stream.pxi":939 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): - */ - __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 4385, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error); - __pyx_t_4 = 0; - __pyx_t_19 = 0; - __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283SAR, 0, __pyx_n_s_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_15); - __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_19) < 0) __PYX_ERR(3, 4385, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; - - /* "talib/_func.pxi":4420 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): # <<<<<<<<<<<<<< - * """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) - * + * def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_19); - __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_15); - __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_4); - __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4420, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - /* "talib/_func.pxi":4418 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): - */ - __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_19); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_15); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_4); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_18)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_14)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_3)) __PYX_ERR(3, 4418, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 7, __pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error); - __pyx_t_19 = 0; - __pyx_t_15 = 0; - __pyx_t_4 = 0; - __pyx_t_18 = 0; - __pyx_t_2 = 0; - __pyx_t_14 = 0; - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285SAREXT, 0, __pyx_n_s_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_6) < 0) __PYX_ERR(3, 4418, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - - /* "talib/_func.pxi":4457 - * return outreal - * - * @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 ): - */ - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287SIN, 0, __pyx_n_s_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4457, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_6) < 0) __PYX_ERR(3, 4457, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY, " CDLBREAKAWAY(open, high, low, close)\n\n Breakaway (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY = {"stream_CDLBREAKAWAY", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_412stream_CDLBREAKAWAY}; +static PyObject *__pyx_pw_5talib_7_ta_lib_413stream_CDLBREAKAWAY(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLBREAKAWAY (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 1); __PYX_ERR(4, 939, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 2); __PYX_ERR(4, 939, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 939, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLBREAKAWAY", 1, 4, 4, 3); __PYX_ERR(4, 939, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLBREAKAWAY") < 0)) __PYX_ERR(4, 939, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLBREAKAWAY", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 939, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 941, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 941, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":4486 - * 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 ): - */ - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SINH, 0, __pyx_n_s_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4486, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_6) < 0) __PYX_ERR(3, 4486, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":4517 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ SMA(real[, timeperiod=?]) - * - */ - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4517, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); +static PyObject *__pyx_pf_5talib_7_ta_lib_412stream_CDLBREAKAWAY(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":4515 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":961 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SMA, 0, __pyx_n_s_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(3, 4515, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 961, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4546 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def SQRT( np.ndarray real not None ): + /* "talib/_stream.pxi":962 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SQRT, 0, __pyx_n_s_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4546, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_6) < 0) __PYX_ERR(3, 4546, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":4577 - * @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 ): # <<<<<<<<<<<<<< - * """ STDDEV(real[, timeperiod=?, nbdev=?]) - * + /* "talib/_stream.pxi":963 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4575 - * 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 ): + /* "talib/_stream.pxi":964 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(3, 4575, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295STDDEV, 0, __pyx_n_s_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_7) < 0) __PYX_ERR(3, 4575, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":4609 - * @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=?]) - * + /* "talib/_stream.pxi":965 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4609, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4607 - * 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 ): + /* "talib/_stream.pxi":966 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_6)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 3, __pyx_t_14)) __PYX_ERR(3, 4607, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 4, __pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_3 = 0; - __pyx_t_6 = 0; - __pyx_t_14 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297STOCH, 0, __pyx_n_s_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_2) < 0) __PYX_ERR(3, 4607, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":4649 - * @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=?]) - * + /* "talib/_stream.pxi":967 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4649, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4647 - * 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 ): + /* "talib/_stream.pxi":968 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(3, 4647, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 4647, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_18 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299STOCHF, 0, __pyx_n_s_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_14) < 0) __PYX_ERR(3, 4647, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":4687 - * @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=?]) - * + /* "talib/_stream.pxi":969 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4687, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 969, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":4685 - * 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 ): + /* "talib/_stream.pxi":970 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) */ - __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_18)) __PYX_ERR(3, 4685, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error); - __pyx_t_14 = 0; - __pyx_t_6 = 0; - __pyx_t_18 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STOCHRSI, 0, __pyx_n_s_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_2) < 0) __PYX_ERR(3, 4685, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":4722 - * 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 ): + /* "talib/_stream.pxi":971 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLBREAKAWAY", retCode) + * return outinteger */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303SUB, 0, __pyx_n_s_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4722, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_2) < 0) __PYX_ERR(3, 4722, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_v_retCode = TA_CDLBREAKAWAY((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":4755 - * @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=?]) + /* "talib/_stream.pxi":972 + * outinteger = 0 + * retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) # <<<<<<<<<<<<<< + * return outinteger * */ - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4755, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLBREAKAWAY, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 972, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":4753 - * return outreal + /* "talib/_stream.pxi":973 + * retCode = lib.TA_CDLBREAKAWAY( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLBREAKAWAY", retCode) + * return outinteger # <<<<<<<<<<<<<< * - * @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 ): - */ - __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305SUM, 0, __pyx_n_s_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_2) < 0) __PYX_ERR(3, 4753, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - - /* "talib/_func.pxi":4786 * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): # <<<<<<<<<<<<<< - * """ T3(real[, timeperiod=?, vfactor=?]) - * */ - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4786, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 973, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":4784 - * return outreal + /* "talib/_stream.pxi":939 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + * def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 4784, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307T3, 0, __pyx_n_s_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(3, 4784, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":4816 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TAN( np.ndarray real not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309TAN, 0, __pyx_n_s_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4816, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(3, 4816, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLBREAKAWAY", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":4845 - * return outreal +/* "talib/_stream.pxi":975 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def TANH( np.ndarray real not None ): + * def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311TANH, 0, __pyx_n_s_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4845, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(3, 4845, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_func.pxi":4876 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ TEMA(real[, timeperiod=?]) - * - */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4876, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU, " CDLCLOSINGMARUBOZU(open, high, low, close)\n\n Closing Marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU = {"stream_CDLCLOSINGMARUBOZU", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLCLOSINGMARUBOZU (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 1); __PYX_ERR(4, 975, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 2); __PYX_ERR(4, 975, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 975, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, 3); __PYX_ERR(4, 975, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCLOSINGMARUBOZU") < 0)) __PYX_ERR(4, 975, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLCLOSINGMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 975, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 977, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 977, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 977, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 977, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); - /* "talib/_func.pxi":4874 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): - */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313TEMA, 0, __pyx_n_s_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(3, 4874, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} - /* "talib/_func.pxi":4905 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): - */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TRANGE, 0, __pyx_n_s_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(3, 4905, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; +static PyObject *__pyx_pf_5talib_7_ta_lib_414stream_CDLCLOSINGMARUBOZU(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); - /* "talib/_func.pxi":4938 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ TRIMA(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":997 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4938, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4936 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":998 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4936, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TRIMA, 0, __pyx_n_s_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(3, 4936, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); - /* "talib/_func.pxi":4969 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ TRIX(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":999 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4969, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 999, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4967 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":1000 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4967, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TRIX, 0, __pyx_n_s_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(3, 4967, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); - /* "talib/_func.pxi":5000 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ TSF(real[, timeperiod=?]) - * + /* "talib/_stream.pxi":1001 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5000, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1001, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":4998 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + /* "talib/_stream.pxi":1002 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TSF, 0, __pyx_n_s_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_GOTREF(__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_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(3, 4998, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); - /* "talib/_func.pxi":5029 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + /* "talib/_stream.pxi":1003 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TYPPRICE, 0, __pyx_n_s_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5029, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(3, 5029, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1003, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; - /* "talib/_func.pxi":5062 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): # <<<<<<<<<<<<<< - * """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) - * + /* "talib/_stream.pxi":1004 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 */ - __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5062, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); - /* "talib/_func.pxi":5060 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + /* "talib/_stream.pxi":1005 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) */ - __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5060, __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)) __PYX_ERR(3, 5060, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_18); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 5060, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_18 = 0; - __pyx_t_2 = 0; - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325ULTOSC, 0, __pyx_n_s_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_6); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_2) < 0) __PYX_ERR(3, 5060, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 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(4, 1005, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; - /* "talib/_func.pxi":5097 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): # <<<<<<<<<<<<<< - * """ VAR(real[, timeperiod=?, nbdev=?]) - * + /* "talib/_stream.pxi":1006 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) */ - __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5097, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __pyx_v_outinteger = 0; - /* "talib/_func.pxi":5095 - * return outreal - * - * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< - * @boundscheck(False) # turn off bounds-checking for entire function - * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + /* "talib/_stream.pxi":1007 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + * return outinteger */ - __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_2); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 5095, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error); - __pyx_t_2 = 0; - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327VAR, 0, __pyx_n_s_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_6) < 0) __PYX_ERR(3, 5095, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_v_retCode = TA_CDLCLOSINGMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); - /* "talib/_func.pxi":5127 - * return outreal + /* "talib/_stream.pxi":1008 + * outinteger = 0 + * retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) # <<<<<<<<<<<<<< + * return outinteger * - * @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 ): */ - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329WCLPRICE, 0, __pyx_n_s_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5127, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_6) < 0) __PYX_ERR(3, 5127, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; - /* "talib/_func.pxi":5160 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ WILLR(high, low, close[, timeperiod=?]) + /* "talib/_stream.pxi":1009 + * retCode = lib.TA_CDLCLOSINGMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCLOSINGMARUBOZU", retCode) + * return outinteger # <<<<<<<<<<<<<< * + * @wraparound(False) # turn off relative indexing from end of lists */ - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5160, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1009, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; - /* "talib/_func.pxi":5158 - * return outreal + /* "talib/_stream.pxi":975 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + * def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331WILLR, 0, __pyx_n_s_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__238)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_6) < 0) __PYX_ERR(3, 5158, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_func.pxi":5193 - * @wraparound(False) # turn off relative indexing from end of lists - * @boundscheck(False) # turn off bounds-checking for entire function - * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< - * """ WMA(real[, timeperiod=?]) - * - */ - __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5193, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLCLOSINGMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} - /* "talib/_func.pxi":5191 - * return outreal +/* "talib/_stream.pxi":1011 + * return outinteger * * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< * @boundscheck(False) # turn off bounds-checking for entire function - * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + * def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GIVEREF(__pyx_t_6); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error); - __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333WMA, 0, __pyx_n_s_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(3, 5191, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_func.pxi":5222 - * return outreal - * - * __TA_FUNCTION_NAMES__ = ["ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","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","CMO","CORREL","COS","COSH","DEMA","DIV","DX","EMA","EXP","FLOOR","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","KAMA","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MAVP","MAX","MAXINDEX","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","OBV","PLUS_DI","PLUS_DM","PPO","ROC","ROCP","ROCR","ROCR100","RSI","SAR","SAREXT","SIN","SINH","SMA","SQRT","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TYPPRICE","ULTOSC","VAR","WCLPRICE","WILLR","WMA"] # <<<<<<<<<<<<<< - */ - __pyx_t_6 = PyList_New(158); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5222, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(__pyx_n_s_ACOS); - __Pyx_GIVEREF(__pyx_n_s_ACOS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_ACOS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AD); - __Pyx_GIVEREF(__pyx_n_s_AD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_AD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADD); - __Pyx_GIVEREF(__pyx_n_s_ADD); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 2, __pyx_n_s_ADD)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADOSC); - __Pyx_GIVEREF(__pyx_n_s_ADOSC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 3, __pyx_n_s_ADOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADX); - __Pyx_GIVEREF(__pyx_n_s_ADX); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 4, __pyx_n_s_ADX)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ADXR); - __Pyx_GIVEREF(__pyx_n_s_ADXR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 5, __pyx_n_s_ADXR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_APO); - __Pyx_GIVEREF(__pyx_n_s_APO); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 6, __pyx_n_s_APO)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AROON); - __Pyx_GIVEREF(__pyx_n_s_AROON); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 7, __pyx_n_s_AROON)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AROONOSC); - __Pyx_GIVEREF(__pyx_n_s_AROONOSC); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 8, __pyx_n_s_AROONOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ASIN); - __Pyx_GIVEREF(__pyx_n_s_ASIN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 9, __pyx_n_s_ASIN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATAN); - __Pyx_GIVEREF(__pyx_n_s_ATAN); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 10, __pyx_n_s_ATAN)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_ATR); - __Pyx_GIVEREF(__pyx_n_s_ATR); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 11, __pyx_n_s_ATR)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_AVGPRICE); - __Pyx_GIVEREF(__pyx_n_s_AVGPRICE); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 12, __pyx_n_s_AVGPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BBANDS); - __Pyx_GIVEREF(__pyx_n_s_BBANDS); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 13, __pyx_n_s_BBANDS)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BETA); - __Pyx_GIVEREF(__pyx_n_s_BETA); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 14, __pyx_n_s_BETA)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_BOP); - __Pyx_GIVEREF(__pyx_n_s_BOP); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 15, __pyx_n_s_BOP)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CCI); - __Pyx_GIVEREF(__pyx_n_s_CCI); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 16, __pyx_n_s_CCI)) __PYX_ERR(3, 5222, __pyx_L1_error); - __Pyx_INCREF(__pyx_n_s_CDL2CROWS); - __Pyx_GIVEREF(__pyx_n_s_CDL2CROWS); +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL, " CDLCONCEALBABYSWALL(open, high, low, close)\n\n Concealing Baby Swallow (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL = {"stream_CDLCONCEALBABYSWALL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLCONCEALBABYSWALL (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 1); __PYX_ERR(4, 1011, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 2); __PYX_ERR(4, 1011, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1011, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCONCEALBABYSWALL", 1, 4, 4, 3); __PYX_ERR(4, 1011, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCONCEALBABYSWALL") < 0)) __PYX_ERR(4, 1011, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLCONCEALBABYSWALL", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1011, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1013, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_416stream_CDLCONCEALBABYSWALL(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1033 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1033, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1034 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1035 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1035, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1036 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1037 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1038 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1039 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1039, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1040 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1041 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1041, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1042 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1043 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLCONCEALBABYSWALL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1044 + * outinteger = 0 + * retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1045 + * retCode = lib.TA_CDLCONCEALBABYSWALL( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCONCEALBABYSWALL", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1045, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1011 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLCONCEALBABYSWALL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1047 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK, " CDLCOUNTERATTACK(open, high, low, close)\n\n Counterattack (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK = {"stream_CDLCOUNTERATTACK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLCOUNTERATTACK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 1); __PYX_ERR(4, 1047, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 2); __PYX_ERR(4, 1047, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1047, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLCOUNTERATTACK", 1, 4, 4, 3); __PYX_ERR(4, 1047, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLCOUNTERATTACK") < 0)) __PYX_ERR(4, 1047, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLCOUNTERATTACK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1047, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1049, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_418stream_CDLCOUNTERATTACK(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1069 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1069, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1070 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1071 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1071, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1072 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1073 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1074 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1075 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1076 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1077 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1077, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1078 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1079 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLCOUNTERATTACK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1080 + * outinteger = 0 + * retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1080, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1081 + * retCode = lib.TA_CDLCOUNTERATTACK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLCOUNTERATTACK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1047 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLCOUNTERATTACK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1083 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER, " CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?])\n\n Dark Cloud Cover (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.5\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER = {"stream_CDLDARKCLOUDCOVER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLDARKCLOUDCOVER (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 1); __PYX_ERR(4, 1083, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 2); __PYX_ERR(4, 1083, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, 3); __PYX_ERR(4, 1083, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1083, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDARKCLOUDCOVER") < 0)) __PYX_ERR(4, 1083, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 1085, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLDARKCLOUDCOVER", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1083, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1085, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_420stream_CDLDARKCLOUDCOVER(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1107 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1108 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1109 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1109, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1110 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1111 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1112 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1113 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1114 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1115 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1115, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1116 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1117 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDARKCLOUDCOVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1118 + * outinteger = 0 + * retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1119 + * retCode = lib.TA_CDLDARKCLOUDCOVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDARKCLOUDCOVER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1083 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLDARKCLOUDCOVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1121 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI, " CDLDOJI(open, high, low, close)\n\n Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI = {"stream_CDLDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_422stream_CDLDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_423stream_CDLDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLDOJI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1121, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1121, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDOJI") < 0)) __PYX_ERR(4, 1121, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1121, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1123, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_422stream_CDLDOJI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1143 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1143, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1144 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1145 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1145, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1146 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1147 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1147, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1148 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1149 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1150 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1151 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1151, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1152 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1153 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1154 + * outinteger = 0 + * retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1155 + * retCode = lib.TA_CDLDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1155, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1121 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1157 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR, " CDLDOJISTAR(open, high, low, close)\n\n Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR = {"stream_CDLDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_424stream_CDLDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_425stream_CDLDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLDOJISTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 1); __PYX_ERR(4, 1157, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 2); __PYX_ERR(4, 1157, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1157, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDOJISTAR", 1, 4, 4, 3); __PYX_ERR(4, 1157, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDOJISTAR") < 0)) __PYX_ERR(4, 1157, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLDOJISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1157, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1159, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_424stream_CDLDOJISTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1179 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1180 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1181 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1181, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1182 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1183 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1184 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1185 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1186 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1187 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1187, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1188 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1189 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1190 + * outinteger = 0 + * retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1191 + * retCode = lib.TA_CDLDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1157 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1193 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI, " CDLDRAGONFLYDOJI(open, high, low, close)\n\n Dragonfly Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI = {"stream_CDLDRAGONFLYDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLDRAGONFLYDOJI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1193, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1193, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1193, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLDRAGONFLYDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1193, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLDRAGONFLYDOJI") < 0)) __PYX_ERR(4, 1193, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLDRAGONFLYDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1193, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1195, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_426stream_CDLDRAGONFLYDOJI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1215 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1215, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1216 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1217 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1218 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1219 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1220 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1221 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1221, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1222 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1223 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1223, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1224 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1225 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLDRAGONFLYDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1226 + * outinteger = 0 + * retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1226, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1227 + * retCode = lib.TA_CDLDRAGONFLYDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLDRAGONFLYDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1193 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLDRAGONFLYDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1229 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING, " CDLENGULFING(open, high, low, close)\n\n Engulfing Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING = {"stream_CDLENGULFING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_428stream_CDLENGULFING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_429stream_CDLENGULFING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLENGULFING (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 1); __PYX_ERR(4, 1229, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 2); __PYX_ERR(4, 1229, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1229, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLENGULFING", 1, 4, 4, 3); __PYX_ERR(4, 1229, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLENGULFING") < 0)) __PYX_ERR(4, 1229, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLENGULFING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1229, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1231, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_428stream_CDLENGULFING(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1251 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1252 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1253 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1253, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1254 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1255 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1255, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1256 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1257 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1257, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1258 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1259 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1259, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1260 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLENGULFING", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1261 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLENGULFING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLENGULFING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1262 + * outinteger = 0 + * retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLENGULFING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLENGULFING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1262, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1263 + * retCode = lib.TA_CDLENGULFING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLENGULFING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1229 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLENGULFING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1265 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR, " CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?])\n\n Evening Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR = {"stream_CDLEVENINGDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLEVENINGDOJISTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(4, 1265, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(4, 1265, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(4, 1265, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1265, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLEVENINGDOJISTAR") < 0)) __PYX_ERR(4, 1265, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 1267, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1265, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1267, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_430stream_CDLEVENINGDOJISTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1289 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1289, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1290 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1291 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1291, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1292 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1293 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1293, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1294 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1295 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1295, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1296 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1297 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1297, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1298 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1299 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLEVENINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1300 + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1300, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1301 + * retCode = lib.TA_CDLEVENINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1265 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1303 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR, " CDLEVENINGSTAR(open, high, low, close[, penetration=?])\n\n Evening Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR = {"stream_CDLEVENINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_432stream_CDLEVENINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_433stream_CDLEVENINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLEVENINGSTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 1); __PYX_ERR(4, 1303, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 2); __PYX_ERR(4, 1303, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, 3); __PYX_ERR(4, 1303, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1303, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLEVENINGSTAR") < 0)) __PYX_ERR(4, 1303, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 1305, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLEVENINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 1303, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1305, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_432stream_CDLEVENINGSTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1327 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1327, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1328 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1329 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1329, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1330 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1331 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1332 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1333 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1333, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1334 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1335 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1335, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1336 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1337 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLEVENINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1338 + * outinteger = 0 + * retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1338, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1339 + * retCode = lib.TA_CDLEVENINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLEVENINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1339, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1303 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLEVENINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1341 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE, " CDLGAPSIDESIDEWHITE(open, high, low, close)\n\n Up/Down-gap side-by-side white lines (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE = {"stream_CDLGAPSIDESIDEWHITE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLGAPSIDESIDEWHITE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 1); __PYX_ERR(4, 1341, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 2); __PYX_ERR(4, 1341, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1341, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, 3); __PYX_ERR(4, 1341, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLGAPSIDESIDEWHITE") < 0)) __PYX_ERR(4, 1341, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLGAPSIDESIDEWHITE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1341, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1343, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_434stream_CDLGAPSIDESIDEWHITE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1363 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1364 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1365 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1366 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1367 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1368 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1369 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1370 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1371 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1371, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1372 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1373 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLGAPSIDESIDEWHITE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1374 + * outinteger = 0 + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1375 + * retCode = lib.TA_CDLGAPSIDESIDEWHITE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGAPSIDESIDEWHITE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1375, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1341 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLGAPSIDESIDEWHITE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1377 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI, " CDLGRAVESTONEDOJI(open, high, low, close)\n\n Gravestone Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI = {"stream_CDLGRAVESTONEDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLGRAVESTONEDOJI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1377, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1377, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1377, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLGRAVESTONEDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1377, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLGRAVESTONEDOJI") < 0)) __PYX_ERR(4, 1377, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLGRAVESTONEDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1377, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1379, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_436stream_CDLGRAVESTONEDOJI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1399 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1400 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1401 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1402 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1403 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1404 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1405 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1406 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1407 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1407, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1408 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1409 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLGRAVESTONEDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1410 + * outinteger = 0 + * retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1410, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1411 + * retCode = lib.TA_CDLGRAVESTONEDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLGRAVESTONEDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1377 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLGRAVESTONEDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1413 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER, " CDLHAMMER(open, high, low, close)\n\n Hammer (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER = {"stream_CDLHAMMER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_438stream_CDLHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_439stream_CDLHAMMER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHAMMER (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 1); __PYX_ERR(4, 1413, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 2); __PYX_ERR(4, 1413, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1413, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHAMMER", 1, 4, 4, 3); __PYX_ERR(4, 1413, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHAMMER") < 0)) __PYX_ERR(4, 1413, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1413, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1415, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_438stream_CDLHAMMER(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1435 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1436 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1437 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1438 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1439 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1439, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1440 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1441 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1441, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1442 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1443 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1443, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1444 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHAMMER", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1445 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHAMMER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1446 + * outinteger = 0 + * retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHAMMER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1447 + * retCode = lib.TA_CDLHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHAMMER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1447, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1413 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1449 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN, " CDLHANGINGMAN(open, high, low, close)\n\n Hanging Man (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN = {"stream_CDLHANGINGMAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_440stream_CDLHANGINGMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_441stream_CDLHANGINGMAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHANGINGMAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 1); __PYX_ERR(4, 1449, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 2); __PYX_ERR(4, 1449, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1449, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHANGINGMAN", 1, 4, 4, 3); __PYX_ERR(4, 1449, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHANGINGMAN") < 0)) __PYX_ERR(4, 1449, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHANGINGMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1449, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1451, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_440stream_CDLHANGINGMAN(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1471 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1471, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1472 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1473 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1474 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1475 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1476 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1477 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1478 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1479 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1479, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1480 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1481 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHANGINGMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1482 + * outinteger = 0 + * retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHANGINGMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1482, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1483 + * retCode = lib.TA_CDLHANGINGMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHANGINGMAN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1483, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1449 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHANGINGMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1485 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI, " CDLHARAMI(open, high, low, close)\n\n Harami Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI = {"stream_CDLHARAMI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_442stream_CDLHARAMI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_443stream_CDLHARAMI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHARAMI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 1); __PYX_ERR(4, 1485, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 2); __PYX_ERR(4, 1485, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1485, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMI", 1, 4, 4, 3); __PYX_ERR(4, 1485, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHARAMI") < 0)) __PYX_ERR(4, 1485, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHARAMI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1485, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1487, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_442stream_CDLHARAMI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1507 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1508 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1509 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1509, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1510 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1511 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1511, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1512 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1513 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1513, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1514 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1515 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1515, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1516 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1517 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHARAMI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHARAMI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1518 + * outinteger = 0 + * retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1518, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1519 + * retCode = lib.TA_CDLHARAMI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1519, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1485 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1521 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS, " CDLHARAMICROSS(open, high, low, close)\n\n Harami Cross Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS = {"stream_CDLHARAMICROSS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_444stream_CDLHARAMICROSS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_445stream_CDLHARAMICROSS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHARAMICROSS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 1); __PYX_ERR(4, 1521, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 2); __PYX_ERR(4, 1521, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1521, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHARAMICROSS", 1, 4, 4, 3); __PYX_ERR(4, 1521, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHARAMICROSS") < 0)) __PYX_ERR(4, 1521, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHARAMICROSS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1521, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1523, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_444stream_CDLHARAMICROSS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1543 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1543, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1544 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1545 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1546 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1547 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1547, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1548 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1549 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1549, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1550 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1551 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1551, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1552 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1553 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHARAMICROSS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1554 + * outinteger = 0 + * retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHARAMICROSS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1555 + * retCode = lib.TA_CDLHARAMICROSS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHARAMICROSS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1555, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1521 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHARAMICROSS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1557 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE, " CDLHIGHWAVE(open, high, low, close)\n\n High-Wave Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE = {"stream_CDLHIGHWAVE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_446stream_CDLHIGHWAVE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_447stream_CDLHIGHWAVE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHIGHWAVE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 1); __PYX_ERR(4, 1557, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 2); __PYX_ERR(4, 1557, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1557, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIGHWAVE", 1, 4, 4, 3); __PYX_ERR(4, 1557, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIGHWAVE") < 0)) __PYX_ERR(4, 1557, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHIGHWAVE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1557, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1559, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_446stream_CDLHIGHWAVE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1579 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1580 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1581 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1581, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1582 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1583 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1584 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1585 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1586 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1587 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1587, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1588 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1589 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIGHWAVE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1590 + * outinteger = 0 + * retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIGHWAVE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1590, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1591 + * retCode = lib.TA_CDLHIGHWAVE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIGHWAVE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1591, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1557 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIGHWAVE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1593 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE, " CDLHIKKAKE(open, high, low, close)\n\n Hikkake Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE = {"stream_CDLHIKKAKE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_448stream_CDLHIKKAKE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_449stream_CDLHIKKAKE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHIKKAKE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 1); __PYX_ERR(4, 1593, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 2); __PYX_ERR(4, 1593, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1593, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKE", 1, 4, 4, 3); __PYX_ERR(4, 1593, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIKKAKE") < 0)) __PYX_ERR(4, 1593, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHIKKAKE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1593, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1595, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_448stream_CDLHIKKAKE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1615 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1616 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1617 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1618 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1619 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1620 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1621 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1621, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1622 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1623 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1623, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1624 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1625 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIKKAKE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIKKAKE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1626 + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1626, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1627 + * retCode = lib.TA_CDLHIKKAKE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1627, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1593 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1629 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD, " CDLHIKKAKEMOD(open, high, low, close)\n\n Modified Hikkake Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD = {"stream_CDLHIKKAKEMOD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHIKKAKEMOD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 1); __PYX_ERR(4, 1629, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 2); __PYX_ERR(4, 1629, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1629, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHIKKAKEMOD", 1, 4, 4, 3); __PYX_ERR(4, 1629, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHIKKAKEMOD") < 0)) __PYX_ERR(4, 1629, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHIKKAKEMOD", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1629, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1631, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_450stream_CDLHIKKAKEMOD(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1651 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1651, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1652 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1653 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1653, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1654 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1655 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1655, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1656 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1657 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1657, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1658 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1659 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1659, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1660 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1661 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHIKKAKEMOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1662 + * outinteger = 0 + * retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1663 + * retCode = lib.TA_CDLHIKKAKEMOD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHIKKAKEMOD", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1629 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHIKKAKEMOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1665 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON, " CDLHOMINGPIGEON(open, high, low, close)\n\n Homing Pigeon (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON = {"stream_CDLHOMINGPIGEON", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON}; +static PyObject *__pyx_pw_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLHOMINGPIGEON (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 1); __PYX_ERR(4, 1665, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 2); __PYX_ERR(4, 1665, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1665, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLHOMINGPIGEON", 1, 4, 4, 3); __PYX_ERR(4, 1665, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLHOMINGPIGEON") < 0)) __PYX_ERR(4, 1665, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLHOMINGPIGEON", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1665, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1667, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_452stream_CDLHOMINGPIGEON(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1687 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1688 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1689 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1689, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1690 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1691 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1692 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1693 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1694 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1695 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1695, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1696 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1697 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLHOMINGPIGEON((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1698 + * outinteger = 0 + * retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1698, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1699 + * retCode = lib.TA_CDLHOMINGPIGEON( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLHOMINGPIGEON", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1699, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1665 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLHOMINGPIGEON", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1701 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS, " CDLIDENTICAL3CROWS(open, high, low, close)\n\n Identical Three Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS = {"stream_CDLIDENTICAL3CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLIDENTICAL3CROWS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 1); __PYX_ERR(4, 1701, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 2); __PYX_ERR(4, 1701, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1701, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLIDENTICAL3CROWS", 1, 4, 4, 3); __PYX_ERR(4, 1701, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLIDENTICAL3CROWS") < 0)) __PYX_ERR(4, 1701, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLIDENTICAL3CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1701, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1703, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_454stream_CDLIDENTICAL3CROWS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1723 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1723, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1724 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1725 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1725, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1726 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1727 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1727, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1728 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1729 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1729, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1730 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1731 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1731, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1732 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1733 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLIDENTICAL3CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1734 + * outinteger = 0 + * retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1734, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1735 + * retCode = lib.TA_CDLIDENTICAL3CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLIDENTICAL3CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1701 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLIDENTICAL3CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1737 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK, " CDLINNECK(open, high, low, close)\n\n In-Neck Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK = {"stream_CDLINNECK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_456stream_CDLINNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_457stream_CDLINNECK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLINNECK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 1); __PYX_ERR(4, 1737, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 2); __PYX_ERR(4, 1737, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1737, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINNECK", 1, 4, 4, 3); __PYX_ERR(4, 1737, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLINNECK") < 0)) __PYX_ERR(4, 1737, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLINNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1737, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1739, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_456stream_CDLINNECK(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1759 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1760 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1761 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1761, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1762 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1763 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1764 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1765 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1766 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1767 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1767, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1768 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINNECK", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1769 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLINNECK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLINNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1770 + * outinteger = 0 + * retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINNECK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1771 + * retCode = lib.TA_CDLINNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINNECK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1737 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLINNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1773 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER, " CDLINVERTEDHAMMER(open, high, low, close)\n\n Inverted Hammer (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER = {"stream_CDLINVERTEDHAMMER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLINVERTEDHAMMER (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 1); __PYX_ERR(4, 1773, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 2); __PYX_ERR(4, 1773, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLINVERTEDHAMMER", 1, 4, 4, 3); __PYX_ERR(4, 1773, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLINVERTEDHAMMER") < 0)) __PYX_ERR(4, 1773, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLINVERTEDHAMMER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1773, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1775, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_458stream_CDLINVERTEDHAMMER(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1795 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1795, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1796 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1797 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1798 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1799 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1800 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1801 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1802 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1803 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1803, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1804 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1805 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLINVERTEDHAMMER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1806 + * outinteger = 0 + * retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1807 + * retCode = lib.TA_CDLINVERTEDHAMMER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLINVERTEDHAMMER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1807, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1773 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLINVERTEDHAMMER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1809 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING, " CDLKICKING(open, high, low, close)\n\n Kicking (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING = {"stream_CDLKICKING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_460stream_CDLKICKING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_461stream_CDLKICKING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLKICKING (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 1); __PYX_ERR(4, 1809, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 2); __PYX_ERR(4, 1809, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1809, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKING", 1, 4, 4, 3); __PYX_ERR(4, 1809, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLKICKING") < 0)) __PYX_ERR(4, 1809, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLKICKING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1809, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1811, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_460stream_CDLKICKING(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1831 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1832 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1833 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1834 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1835 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1836 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1837 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1838 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1839 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1839, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1840 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKING", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1841 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLKICKING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLKICKING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1842 + * outinteger = 0 + * retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1843 + * retCode = lib.TA_CDLKICKING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1809 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1845 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH, " CDLKICKINGBYLENGTH(open, high, low, close)\n\n Kicking - bull/bear determined by the longer marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH = {"stream_CDLKICKINGBYLENGTH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLKICKINGBYLENGTH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 1); __PYX_ERR(4, 1845, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 2); __PYX_ERR(4, 1845, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1845, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLKICKINGBYLENGTH", 1, 4, 4, 3); __PYX_ERR(4, 1845, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLKICKINGBYLENGTH") < 0)) __PYX_ERR(4, 1845, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLKICKINGBYLENGTH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1845, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1847, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_462stream_CDLKICKINGBYLENGTH(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1867 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1868 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1869 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1870 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1871 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1871, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1872 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1873 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1874 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1875 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1875, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1876 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1877 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLKICKINGBYLENGTH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1878 + * outinteger = 0 + * retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1878, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1879 + * retCode = lib.TA_CDLKICKINGBYLENGTH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLKICKINGBYLENGTH", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1879, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1845 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLKICKINGBYLENGTH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1881 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM, " CDLLADDERBOTTOM(open, high, low, close)\n\n Ladder Bottom (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM = {"stream_CDLLADDERBOTTOM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLLADDERBOTTOM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 1); __PYX_ERR(4, 1881, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 2); __PYX_ERR(4, 1881, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1881, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLADDERBOTTOM", 1, 4, 4, 3); __PYX_ERR(4, 1881, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLADDERBOTTOM") < 0)) __PYX_ERR(4, 1881, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLLADDERBOTTOM", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1881, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1883, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_464stream_CDLLADDERBOTTOM(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1903 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1904 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1905 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1906 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1907 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1907, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1908 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1909 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1909, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1910 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1911 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1911, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1912 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1913 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLADDERBOTTOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1914 + * outinteger = 0 + * retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1914, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1915 + * retCode = lib.TA_CDLLADDERBOTTOM( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLADDERBOTTOM", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1915, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1881 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLLADDERBOTTOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1917 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI, " CDLLONGLEGGEDDOJI(open, high, low, close)\n\n Long Legged Doji (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI = {"stream_CDLLONGLEGGEDDOJI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLLONGLEGGEDDOJI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 1); __PYX_ERR(4, 1917, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 2); __PYX_ERR(4, 1917, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1917, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, 3); __PYX_ERR(4, 1917, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLONGLEGGEDDOJI") < 0)) __PYX_ERR(4, 1917, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLLONGLEGGEDDOJI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1917, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1919, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_466stream_CDLLONGLEGGEDDOJI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1939 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1940 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1941 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1942 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1943 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1944 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1945 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1945, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1946 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1947 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1947, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1948 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1949 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLONGLEGGEDDOJI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1950 + * outinteger = 0 + * retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1950, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1951 + * retCode = lib.TA_CDLLONGLEGGEDDOJI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLEGGEDDOJI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1917 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLEGGEDDOJI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1953 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE, " CDLLONGLINE(open, high, low, close)\n\n Long Line Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE = {"stream_CDLLONGLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_468stream_CDLLONGLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_469stream_CDLLONGLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLLONGLINE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 1); __PYX_ERR(4, 1953, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 2); __PYX_ERR(4, 1953, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1953, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLLONGLINE", 1, 4, 4, 3); __PYX_ERR(4, 1953, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLLONGLINE") < 0)) __PYX_ERR(4, 1953, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLLONGLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1953, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1955, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_468stream_CDLLONGLINE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":1975 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1976 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":1977 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1977, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1978 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":1979 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1979, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1980 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":1981 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1981, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1982 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":1983 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 1983, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":1984 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLINE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":1985 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLLONGLINE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLLONGLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":1986 + * outinteger = 0 + * retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLINE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLLONGLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":1987 + * retCode = lib.TA_CDLLONGLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLLONGLINE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 1987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1953 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLLONGLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":1989 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU, " CDLMARUBOZU(open, high, low, close)\n\n Marubozu (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU = {"stream_CDLMARUBOZU", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_470stream_CDLMARUBOZU}; +static PyObject *__pyx_pw_5talib_7_ta_lib_471stream_CDLMARUBOZU(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLMARUBOZU (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 1); __PYX_ERR(4, 1989, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 2); __PYX_ERR(4, 1989, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 1989, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMARUBOZU", 1, 4, 4, 3); __PYX_ERR(4, 1989, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMARUBOZU") < 0)) __PYX_ERR(4, 1989, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLMARUBOZU", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 1989, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 1991, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_470stream_CDLMARUBOZU(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2011 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2012 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2013 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2014 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2015 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2016 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2017 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2018 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2019 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2019, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2020 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2021 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMARUBOZU", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMARUBOZU((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2022 + * outinteger = 0 + * retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMARUBOZU, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2023 + * retCode = lib.TA_CDLMARUBOZU( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMARUBOZU", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":1989 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLMARUBOZU", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2025 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW, " CDLMATCHINGLOW(open, high, low, close)\n\n Matching Low (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW = {"stream_CDLMATCHINGLOW", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_472stream_CDLMATCHINGLOW}; +static PyObject *__pyx_pw_5talib_7_ta_lib_473stream_CDLMATCHINGLOW(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLMATCHINGLOW (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 1); __PYX_ERR(4, 2025, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 2); __PYX_ERR(4, 2025, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2025, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATCHINGLOW", 1, 4, 4, 3); __PYX_ERR(4, 2025, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMATCHINGLOW") < 0)) __PYX_ERR(4, 2025, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLMATCHINGLOW", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2025, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_472stream_CDLMATCHINGLOW(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2047 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2048 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2049 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2050 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2051 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2052 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2053 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2054 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2055 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2055, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2056 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2057 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMATCHINGLOW((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2058 + * outinteger = 0 + * retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2059 + * retCode = lib.TA_CDLMATCHINGLOW( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATCHINGLOW", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2025 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATCHINGLOW", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2061 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD, " CDLMATHOLD(open, high, low, close[, penetration=?])\n\n Mat Hold (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.5\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD = {"stream_CDLMATHOLD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_474stream_CDLMATHOLD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_475stream_CDLMATHOLD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLMATHOLD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 1); __PYX_ERR(4, 2061, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 2); __PYX_ERR(4, 2061, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, 3); __PYX_ERR(4, 2061, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2061, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMATHOLD") < 0)) __PYX_ERR(4, 2061, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 2063, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.5)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLMATHOLD", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2061, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2063, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_474stream_CDLMATHOLD(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2085 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2086 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2087 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2088 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2089 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2089, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2090 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2091 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2091, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2092 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2093 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2093, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2094 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATHOLD", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2095 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMATHOLD", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMATHOLD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2096 + * outinteger = 0 + * retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATHOLD", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMATHOLD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2096, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2097 + * retCode = lib.TA_CDLMATHOLD( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMATHOLD", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2061 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLMATHOLD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2099 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR, " CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?])\n\n Morning Doji Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR = {"stream_CDLMORNINGDOJISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLMORNINGDOJISTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 1); __PYX_ERR(4, 2099, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 2); __PYX_ERR(4, 2099, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, 3); __PYX_ERR(4, 2099, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2099, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMORNINGDOJISTAR") < 0)) __PYX_ERR(4, 2099, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 2101, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGDOJISTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2099, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2101, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_476stream_CDLMORNINGDOJISTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2123 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2124 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2125 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2125, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2126 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2127 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2128 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2129 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2130 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2131 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2131, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2132 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2133 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMORNINGDOJISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2134 + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2135 + * retCode = lib.TA_CDLMORNINGDOJISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGDOJISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2099 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGDOJISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2137 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR, " CDLMORNINGSTAR(open, high, low, close[, penetration=?])\n\n Morning Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Parameters:\n penetration: 0.3\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR = {"stream_CDLMORNINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_478stream_CDLMORNINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_479stream_CDLMORNINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + double __pyx_v_penetration; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLMORNINGSTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_penetration,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 1); __PYX_ERR(4, 2137, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 2); __PYX_ERR(4, 2137, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, 3); __PYX_ERR(4, 2137, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_penetration); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2137, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLMORNINGSTAR") < 0)) __PYX_ERR(4, 2137, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 2139, __pyx_L3_error) + } else { + __pyx_v_penetration = ((double)((double)0.3)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CDLMORNINGSTAR", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 2137, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2139, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_penetration); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_478stream_CDLMORNINGSTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2161 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2161, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2162 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2163 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2163, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2164 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2165 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2166 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2167 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2168 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2169 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2169, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2170 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2171 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLMORNINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_penetration, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2172 + * outinteger = 0 + * retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2173 + * retCode = lib.TA_CDLMORNINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , penetration , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLMORNINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2137 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLMORNINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2175 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK, " CDLONNECK(open, high, low, close)\n\n On-Neck Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK = {"stream_CDLONNECK", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_480stream_CDLONNECK}; +static PyObject *__pyx_pw_5talib_7_ta_lib_481stream_CDLONNECK(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLONNECK (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 1); __PYX_ERR(4, 2175, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 2); __PYX_ERR(4, 2175, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2175, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLONNECK", 1, 4, 4, 3); __PYX_ERR(4, 2175, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLONNECK") < 0)) __PYX_ERR(4, 2175, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLONNECK", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2175, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2177, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_480stream_CDLONNECK(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2197 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2198 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2199 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2200 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2201 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2201, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2202 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2203 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2204 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2205 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2205, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2206 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLONNECK", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2207 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLONNECK", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLONNECK((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2208 + * outinteger = 0 + * retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLONNECK", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLONNECK, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2209 + * retCode = lib.TA_CDLONNECK( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLONNECK", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2209, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2175 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLONNECK", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2211 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING, " CDLPIERCING(open, high, low, close)\n\n Piercing Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING = {"stream_CDLPIERCING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_482stream_CDLPIERCING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_483stream_CDLPIERCING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLPIERCING (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 1); __PYX_ERR(4, 2211, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 2); __PYX_ERR(4, 2211, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2211, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLPIERCING", 1, 4, 4, 3); __PYX_ERR(4, 2211, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLPIERCING") < 0)) __PYX_ERR(4, 2211, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLPIERCING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2211, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2213, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_482stream_CDLPIERCING(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2233 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2233, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2234 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2235 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2235, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2236 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2237 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2237, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2238 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2239 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2240 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2241 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2241, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2242 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLPIERCING", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2243 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLPIERCING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLPIERCING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2244 + * outinteger = 0 + * retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLPIERCING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLPIERCING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2245 + * retCode = lib.TA_CDLPIERCING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLPIERCING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2211 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLPIERCING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN, " CDLRICKSHAWMAN(open, high, low, close)\n\n Rickshaw Man (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN = {"stream_CDLRICKSHAWMAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLRICKSHAWMAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 1); __PYX_ERR(4, 2247, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 2); __PYX_ERR(4, 2247, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2247, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRICKSHAWMAN", 1, 4, 4, 3); __PYX_ERR(4, 2247, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLRICKSHAWMAN") < 0)) __PYX_ERR(4, 2247, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLRICKSHAWMAN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2247, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2249, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_484stream_CDLRICKSHAWMAN(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2269 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2270 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2271 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2272 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2273 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2274 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2275 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2275, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2276 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2277 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2277, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2278 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2279 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLRICKSHAWMAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2280 + * outinteger = 0 + * retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2281 + * retCode = lib.TA_CDLRICKSHAWMAN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRICKSHAWMAN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2281, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLRICKSHAWMAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2283 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS, " CDLRISEFALL3METHODS(open, high, low, close)\n\n Rising/Falling Three Methods (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS = {"stream_CDLRISEFALL3METHODS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLRISEFALL3METHODS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 1); __PYX_ERR(4, 2283, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 2); __PYX_ERR(4, 2283, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2283, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLRISEFALL3METHODS", 1, 4, 4, 3); __PYX_ERR(4, 2283, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLRISEFALL3METHODS") < 0)) __PYX_ERR(4, 2283, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLRISEFALL3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2283, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2285, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_486stream_CDLRISEFALL3METHODS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2305 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2306 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2307 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2308 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2309 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2309, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2310 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2311 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2312 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2313 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2313, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2314 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2315 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLRISEFALL3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2316 + * outinteger = 0 + * retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2317 + * retCode = lib.TA_CDLRISEFALL3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLRISEFALL3METHODS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2317, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2283 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLRISEFALL3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2319 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES, " CDLSEPARATINGLINES(open, high, low, close)\n\n Separating Lines (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES = {"stream_CDLSEPARATINGLINES", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES}; +static PyObject *__pyx_pw_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSEPARATINGLINES (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 1); __PYX_ERR(4, 2319, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 2); __PYX_ERR(4, 2319, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2319, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSEPARATINGLINES", 1, 4, 4, 3); __PYX_ERR(4, 2319, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSEPARATINGLINES") < 0)) __PYX_ERR(4, 2319, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSEPARATINGLINES", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2319, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2321, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_488stream_CDLSEPARATINGLINES(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2341 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2342 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2343 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2343, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2344 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2345 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2346 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2347 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2347, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2348 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2349 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2349, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2350 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2351 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSEPARATINGLINES((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2352 + * outinteger = 0 + * retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2352, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2353 + * retCode = lib.TA_CDLSEPARATINGLINES( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSEPARATINGLINES", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2353, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2319 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSEPARATINGLINES", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2355 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR, " CDLSHOOTINGSTAR(open, high, low, close)\n\n Shooting Star (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR = {"stream_CDLSHOOTINGSTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSHOOTINGSTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 1); __PYX_ERR(4, 2355, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 2); __PYX_ERR(4, 2355, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2355, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHOOTINGSTAR", 1, 4, 4, 3); __PYX_ERR(4, 2355, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSHOOTINGSTAR") < 0)) __PYX_ERR(4, 2355, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSHOOTINGSTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2355, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2357, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_490stream_CDLSHOOTINGSTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2377 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2378 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2379 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2379, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2380 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2381 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2381, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2382 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2383 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2383, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2384 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2385 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2385, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2386 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2387 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSHOOTINGSTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2388 + * outinteger = 0 + * retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2388, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2389 + * retCode = lib.TA_CDLSHOOTINGSTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHOOTINGSTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2355 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHOOTINGSTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2391 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE, " CDLSHORTLINE(open, high, low, close)\n\n Short Line Candle (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE = {"stream_CDLSHORTLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_492stream_CDLSHORTLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_493stream_CDLSHORTLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSHORTLINE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 1); __PYX_ERR(4, 2391, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 2); __PYX_ERR(4, 2391, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2391, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSHORTLINE", 1, 4, 4, 3); __PYX_ERR(4, 2391, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSHORTLINE") < 0)) __PYX_ERR(4, 2391, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSHORTLINE", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2391, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2393, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_492stream_CDLSHORTLINE(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2413 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2414 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2415 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2415, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2416 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2417 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2417, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2418 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2419 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2420 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2421 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2421, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2422 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2423 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSHORTLINE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSHORTLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2424 + * outinteger = 0 + * retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSHORTLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2425 + * retCode = lib.TA_CDLSHORTLINE( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSHORTLINE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2425, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2391 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSHORTLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2427 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP, " CDLSPINNINGTOP(open, high, low, close)\n\n Spinning Top (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP = {"stream_CDLSPINNINGTOP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_494stream_CDLSPINNINGTOP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_495stream_CDLSPINNINGTOP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSPINNINGTOP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 1); __PYX_ERR(4, 2427, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 2); __PYX_ERR(4, 2427, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2427, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSPINNINGTOP", 1, 4, 4, 3); __PYX_ERR(4, 2427, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSPINNINGTOP") < 0)) __PYX_ERR(4, 2427, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSPINNINGTOP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2427, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2429, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_494stream_CDLSPINNINGTOP(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2449 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2450 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2451 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2451, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2452 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2453 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2454 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2455 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2456 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2457 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2457, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2458 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2459 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSPINNINGTOP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2460 + * outinteger = 0 + * retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2461 + * retCode = lib.TA_CDLSPINNINGTOP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSPINNINGTOP", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2427 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSPINNINGTOP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2463 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN, " CDLSTALLEDPATTERN(open, high, low, close)\n\n Stalled Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN = {"stream_CDLSTALLEDPATTERN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSTALLEDPATTERN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 1); __PYX_ERR(4, 2463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 2); __PYX_ERR(4, 2463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2463, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTALLEDPATTERN", 1, 4, 4, 3); __PYX_ERR(4, 2463, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSTALLEDPATTERN") < 0)) __PYX_ERR(4, 2463, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSTALLEDPATTERN", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2463, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2465, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_496stream_CDLSTALLEDPATTERN(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2485 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2486 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2487 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2487, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2488 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2489 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2490 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2491 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2491, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2492 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2493 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2493, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2494 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2495 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSTALLEDPATTERN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2496 + * outinteger = 0 + * retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2496, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2497 + * retCode = lib.TA_CDLSTALLEDPATTERN( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTALLEDPATTERN", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2463 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTALLEDPATTERN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2499 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH, " CDLSTICKSANDWICH(open, high, low, close)\n\n Stick Sandwich (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH = {"stream_CDLSTICKSANDWICH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLSTICKSANDWICH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 1); __PYX_ERR(4, 2499, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 2); __PYX_ERR(4, 2499, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2499, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLSTICKSANDWICH", 1, 4, 4, 3); __PYX_ERR(4, 2499, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLSTICKSANDWICH") < 0)) __PYX_ERR(4, 2499, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLSTICKSANDWICH", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2499, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2501, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_498stream_CDLSTICKSANDWICH(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2521 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2522 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2523 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2523, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2524 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2525 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2525, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2526 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2527 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2528 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2529 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2529, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2530 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2531 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLSTICKSANDWICH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2532 + * outinteger = 0 + * retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2533 + * retCode = lib.TA_CDLSTICKSANDWICH( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLSTICKSANDWICH", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2533, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2499 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLSTICKSANDWICH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2535 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI, " CDLTAKURI(open, high, low, close)\n\n Takuri (Dragonfly Doji with very long lower shadow) (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI = {"stream_CDLTAKURI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_500stream_CDLTAKURI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_501stream_CDLTAKURI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLTAKURI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 1); __PYX_ERR(4, 2535, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 2); __PYX_ERR(4, 2535, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2535, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTAKURI", 1, 4, 4, 3); __PYX_ERR(4, 2535, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTAKURI") < 0)) __PYX_ERR(4, 2535, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLTAKURI", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2535, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2537, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_500stream_CDLTAKURI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2557 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2558 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2559 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2559, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2560 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2561 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2561, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2562 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2563 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2563, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2564 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2565 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2565, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2566 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTAKURI", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2567 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTAKURI", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTAKURI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2568 + * outinteger = 0 + * retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTAKURI", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTAKURI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2569 + * retCode = lib.TA_CDLTAKURI( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTAKURI", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2569, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2535 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLTAKURI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2571 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP, " CDLTASUKIGAP(open, high, low, close)\n\n Tasuki Gap (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP = {"stream_CDLTASUKIGAP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_502stream_CDLTASUKIGAP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_503stream_CDLTASUKIGAP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLTASUKIGAP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 1); __PYX_ERR(4, 2571, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 2); __PYX_ERR(4, 2571, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2571, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTASUKIGAP", 1, 4, 4, 3); __PYX_ERR(4, 2571, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTASUKIGAP") < 0)) __PYX_ERR(4, 2571, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLTASUKIGAP", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2571, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2573, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_502stream_CDLTASUKIGAP(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2593 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2594 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2595 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2595, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2596 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2597 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2597, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2598 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2599 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2599, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2600 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2601 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2601, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2602 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2603 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTASUKIGAP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2604 + * outinteger = 0 + * retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTASUKIGAP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2605 + * retCode = lib.TA_CDLTASUKIGAP( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTASUKIGAP", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2605, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2571 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLTASUKIGAP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2607 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING, " CDLTHRUSTING(open, high, low, close)\n\n Thrusting Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING = {"stream_CDLTHRUSTING", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_504stream_CDLTHRUSTING}; +static PyObject *__pyx_pw_5talib_7_ta_lib_505stream_CDLTHRUSTING(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLTHRUSTING (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 1); __PYX_ERR(4, 2607, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 2); __PYX_ERR(4, 2607, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2607, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTHRUSTING", 1, 4, 4, 3); __PYX_ERR(4, 2607, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTHRUSTING") < 0)) __PYX_ERR(4, 2607, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLTHRUSTING", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2607, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2609, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_504stream_CDLTHRUSTING(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2629 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2630 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2631 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2632 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2633 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2634 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2635 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2635, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2636 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2637 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2637, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2638 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2639 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTHRUSTING", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTHRUSTING((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2640 + * outinteger = 0 + * retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTHRUSTING, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2641 + * retCode = lib.TA_CDLTHRUSTING( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTHRUSTING", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2607 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLTHRUSTING", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2643 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR, " CDLTRISTAR(open, high, low, close)\n\n Tristar Pattern (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR = {"stream_CDLTRISTAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_506stream_CDLTRISTAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_507stream_CDLTRISTAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLTRISTAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 1); __PYX_ERR(4, 2643, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 2); __PYX_ERR(4, 2643, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2643, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLTRISTAR", 1, 4, 4, 3); __PYX_ERR(4, 2643, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLTRISTAR") < 0)) __PYX_ERR(4, 2643, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLTRISTAR", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2643, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2645, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_506stream_CDLTRISTAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2665 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2666 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2667 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2668 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2669 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2669, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2670 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2671 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2672 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2673 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2673, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2674 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTRISTAR", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2675 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLTRISTAR", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLTRISTAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2676 + * outinteger = 0 + * retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTRISTAR", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLTRISTAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2676, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2677 + * retCode = lib.TA_CDLTRISTAR( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLTRISTAR", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2643 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLTRISTAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2679 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER, " CDLUNIQUE3RIVER(open, high, low, close)\n\n Unique 3 River (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER = {"stream_CDLUNIQUE3RIVER", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER}; +static PyObject *__pyx_pw_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLUNIQUE3RIVER (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 1); __PYX_ERR(4, 2679, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 2); __PYX_ERR(4, 2679, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2679, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUNIQUE3RIVER", 1, 4, 4, 3); __PYX_ERR(4, 2679, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLUNIQUE3RIVER") < 0)) __PYX_ERR(4, 2679, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLUNIQUE3RIVER", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2679, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2681, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_508stream_CDLUNIQUE3RIVER(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2701 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2702 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2703 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2703, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2704 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2705 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2706 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2707 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2708 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2709 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2709, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2710 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2711 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLUNIQUE3RIVER((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2712 + * outinteger = 0 + * retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2713 + * retCode = lib.TA_CDLUNIQUE3RIVER( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUNIQUE3RIVER", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2679 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLUNIQUE3RIVER", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2715 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS, " CDLUPSIDEGAP2CROWS(open, high, low, close)\n\n Upside Gap Two Crows (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS = {"stream_CDLUPSIDEGAP2CROWS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLUPSIDEGAP2CROWS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 1); __PYX_ERR(4, 2715, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 2); __PYX_ERR(4, 2715, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2715, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, 3); __PYX_ERR(4, 2715, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLUPSIDEGAP2CROWS") < 0)) __PYX_ERR(4, 2715, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLUPSIDEGAP2CROWS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2715, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2717, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_510stream_CDLUPSIDEGAP2CROWS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2737 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2738 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2739 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2740 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2741 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2742 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2743 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2744 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2745 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2745, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2746 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2747 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLUPSIDEGAP2CROWS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2748 + * outinteger = 0 + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2748, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2749 + * retCode = lib.TA_CDLUPSIDEGAP2CROWS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLUPSIDEGAP2CROWS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2749, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2715 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLUPSIDEGAP2CROWS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2751 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS, " CDLXSIDEGAP3METHODS(open, high, low, close)\n\n Upside/Downside Gap Three Methods (Pattern Recognition)\n\n Inputs:\n prices: ['open', 'high', 'low', 'close']\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS = {"stream_CDLXSIDEGAP3METHODS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CDLXSIDEGAP3METHODS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_open,&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_open)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 1); __PYX_ERR(4, 2751, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 2); __PYX_ERR(4, 2751, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2751, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, 3); __PYX_ERR(4, 2751, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CDLXSIDEGAP3METHODS") < 0)) __PYX_ERR(4, 2751, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 4)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + } + __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("stream_CDLXSIDEGAP3METHODS", 1, 4, 4, __pyx_nargs); __PYX_ERR(4, 2751, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_open), __pyx_ptype_5numpy_ndarray, 0, "open", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2753, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(__pyx_self, __pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_512stream_CDLXSIDEGAP3METHODS(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_open_data; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":2773 + * int outnbelement + * int outinteger + * open = check_array(open) # <<<<<<<<<<<<<< + * open_data = open.data + * high = check_array(high) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_open)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_open, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2774 + * int outinteger + * open = check_array(open) + * open_data = open.data # <<<<<<<<<<<<<< + * high = check_array(high) + * high_data = high.data + */ + __pyx_v_open_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_open)); + + /* "talib/_stream.pxi":2775 + * open = check_array(open) + * open_data = open.data + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2776 + * open_data = open.data + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":2777 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2777, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2778 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":2779 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length4(open, high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2779, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2780 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length4(open, high, low, close) + * outinteger = 0 + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":2781 + * close = check_array(close) + * close_data = close.data + * length = check_length4(open, high, low, close) # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_t_2 = __pyx_f_5talib_7_ta_lib_check_length4(__pyx_v_open, __pyx_v_high, __pyx_v_low, __pyx_v_close); if (unlikely(__pyx_t_2 == ((npy_intp)-1L))) __PYX_ERR(4, 2781, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2782 + * close_data = close.data + * length = check_length4(open, high, low, close) + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":2783 + * length = check_length4(open, high, low, close) + * outinteger = 0 + * retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_CDLXSIDEGAP3METHODS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_open_data, __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":2784 + * outinteger = 0 + * retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2785 + * retCode = lib.TA_CDLXSIDEGAP3METHODS( (length) - 1 , (length) - 1 , open_data , high_data , low_data , close_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_CDLXSIDEGAP3METHODS", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2785, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2751 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CDLXSIDEGAP3METHODS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":2787 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CEIL( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_514stream_CEIL, " CEIL(real)\n\n Vector Ceil (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_515stream_CEIL = {"stream_CEIL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_515stream_CEIL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_514stream_CEIL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_515stream_CEIL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CEIL (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2787, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CEIL") < 0)) __PYX_ERR(4, 2787, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CEIL", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2787, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2789, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_514stream_CEIL(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_514stream_CEIL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_CEIL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":2806 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2806, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2807 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":2808 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":2809 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CEIL", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2810 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CEIL", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CEIL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2811 + * outreal = NaN + * retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CEIL", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CEIL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2812 + * retCode = lib.TA_CEIL( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CEIL", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2812, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2787 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CEIL( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CEIL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2814 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CMO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_516stream_CMO, " CMO(real[, timeperiod=?])\n\n Chande Momentum Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_517stream_CMO = {"stream_CMO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_517stream_CMO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_516stream_CMO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_517stream_CMO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_CMO (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2814, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2814, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CMO") < 0)) __PYX_ERR(4, 2814, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2816, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CMO", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2814, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2816, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_516stream_CMO(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_516stream_CMO(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_CMO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":2835 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2836 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":2837 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":2838 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CMO", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2839 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CMO", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CMO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2840 + * outreal = NaN + * retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CMO", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CMO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2841 + * retCode = lib.TA_CMO( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CMO", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2814 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CMO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2843 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CORREL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_518stream_CORREL, " CORREL(real0, real1[, timeperiod=?])\n\n Pearson's Correlation Coefficient (r) (Statistic Functions)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_519stream_CORREL = {"stream_CORREL", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_519stream_CORREL, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_518stream_CORREL}; +static PyObject *__pyx_pw_5talib_7_ta_lib_519stream_CORREL(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_CORREL (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, 1); __PYX_ERR(4, 2843, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2843, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_CORREL") < 0)) __PYX_ERR(4, 2843, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2845, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_CORREL", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 2843, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2845, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2845, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_518stream_CORREL(__pyx_self, __pyx_v_real0, __pyx_v_real1, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_518stream_CORREL(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_CORREL", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":2866 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2866, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2867 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data + */ + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + /* "talib/_stream.pxi":2868 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2869 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN + */ + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + /* "talib/_stream.pxi":2870 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 2870, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2871 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CORREL", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2872 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_CORREL", retCode) + * return outreal + */ + __pyx_v_retCode = TA_CORREL((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2873 + * outreal = NaN + * retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CORREL", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_CORREL, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2874 + * retCode = lib.TA_CORREL( (length) - 1 , (length) - 1 , real0_data , real1_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_CORREL", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2843 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_CORREL", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COS( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_520stream_COS, " COS(real)\n\n Vector Trigonometric Cos (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_521stream_COS = {"stream_COS", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_521stream_COS, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_520stream_COS}; +static PyObject *__pyx_pw_5talib_7_ta_lib_521stream_COS(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_COS (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2876, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_COS") < 0)) __PYX_ERR(4, 2876, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_COS", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2876, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2878, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_520stream_COS(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_520stream_COS(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_COS", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":2895 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2896 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":2897 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":2898 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COS", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2899 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_COS", retCode) + * return outreal + */ + __pyx_v_retCode = TA_COS((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2900 + * outreal = NaN + * retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COS", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COS, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2901 + * retCode = lib.TA_COS( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COS", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COS( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_COS", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COSH( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_COSH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_522stream_COSH, " COSH(real)\n\n Vector Trigonometric Cosh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_523stream_COSH = {"stream_COSH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_523stream_COSH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_522stream_COSH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_523stream_COSH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_COSH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2903, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_COSH") < 0)) __PYX_ERR(4, 2903, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_COSH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 2903, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2905, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_522stream_COSH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_522stream_COSH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_COSH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":2922 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2923 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":2924 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":2925 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COSH", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2926 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_COSH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_COSH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2927 + * outreal = NaN + * retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COSH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_COSH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2928 + * retCode = lib.TA_COSH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_COSH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COSH( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_COSH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2930 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_DEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_524stream_DEMA, " DEMA(real[, timeperiod=?])\n\n Double Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_525stream_DEMA = {"stream_DEMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_525stream_DEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_524stream_DEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_525stream_DEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_DEMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2930, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DEMA") < 0)) __PYX_ERR(4, 2930, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2932, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_DEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 2930, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 2932, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_524stream_DEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_524stream_DEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_DEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":2951 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2951, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2952 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":2953 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":2954 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DEMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2955 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DEMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2956 + * outreal = NaN + * retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DEMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2956, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2957 + * retCode = lib.TA_DEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DEMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2930 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_DEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2959 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_DIV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_526stream_DIV, " DIV(real0, real1)\n\n Vector Arithmetic Div (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_527stream_DIV = {"stream_DIV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_527stream_DIV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_526stream_DIV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_527stream_DIV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_DIV (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2959, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2959, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, 1); __PYX_ERR(4, 2959, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DIV") < 0)) __PYX_ERR(4, 2959, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_DIV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 2959, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 2961, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 2961, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_526stream_DIV(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_526stream_DIV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_DIV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":2980 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2980, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2981 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data + */ + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + /* "talib/_stream.pxi":2982 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2982, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2983 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN + */ + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + /* "talib/_stream.pxi":2984 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 2984, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":2985 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DIV", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":2986 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DIV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DIV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":2987 + * outreal = NaN + * retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DIV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DIV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2987, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":2988 + * retCode = lib.TA_DIV( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DIV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 2988, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2959 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_DIV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":2990 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_528stream_DX, " DX(high, low, close[, timeperiod=?])\n\n Directional Movement Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_529stream_DX = {"stream_DX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_529stream_DX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_528stream_DX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_529stream_DX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_DX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 1); __PYX_ERR(4, 2990, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, 2); __PYX_ERR(4, 2990, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 2990, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_DX") < 0)) __PYX_ERR(4, 2990, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 2992, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_DX", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 2990, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 2992, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_528stream_DX(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_528stream_DX(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_DX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":3013 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3013, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3014 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":3015 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3016 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":3017 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3018 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":3019 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 3019, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":3020 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DX", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3021 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_DX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_DX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3022 + * outreal = NaN + * retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_DX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3022, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3023 + * retCode = lib.TA_DX( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_DX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":2990 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_DX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":3025 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_530stream_EMA, " EMA(real[, timeperiod=?])\n\n Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_531stream_EMA = {"stream_EMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_531stream_EMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_530stream_EMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_531stream_EMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_EMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3025, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3025, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_EMA") < 0)) __PYX_ERR(4, 3025, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3027, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_EMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3025, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3027, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_530stream_EMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_530stream_EMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_EMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3046 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3046, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3047 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3048 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3049 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3050 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_EMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_EMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3051 + * outreal = NaN + * retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3052 + * retCode = lib.TA_EMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3025 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_EMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3054 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EXP( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_EXP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_532stream_EXP, " EXP(real)\n\n Vector Arithmetic Exp (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_533stream_EXP = {"stream_EXP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_533stream_EXP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_532stream_EXP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_533stream_EXP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_EXP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3054, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_EXP") < 0)) __PYX_ERR(4, 3054, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_EXP", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3054, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3056, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_532stream_EXP(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_532stream_EXP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_EXP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3073 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3074 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3075 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3076 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EXP", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3077 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_EXP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_EXP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3078 + * outreal = NaN + * retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EXP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_EXP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3078, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3079 + * retCode = lib.TA_EXP( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_EXP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3079, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3054 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EXP( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_EXP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3081 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_FLOOR( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_FLOOR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_534stream_FLOOR, " FLOOR(real)\n\n Vector Floor (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_535stream_FLOOR = {"stream_FLOOR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_535stream_FLOOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_534stream_FLOOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_535stream_FLOOR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_FLOOR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3081, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_FLOOR") < 0)) __PYX_ERR(4, 3081, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_FLOOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3081, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3083, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_534stream_FLOOR(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_534stream_FLOOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_FLOOR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3100 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3100, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3101 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3102 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3103 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_FLOOR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3104 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_FLOOR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_FLOOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3105 + * outreal = NaN + * retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_FLOOR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_FLOOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3106 + * retCode = lib.TA_FLOOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_FLOOR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3106, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3081 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_FLOOR( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_FLOOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3108 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPERIOD( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD, " HT_DCPERIOD(real)\n\n Hilbert Transform - Dominant Cycle Period (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD = {"stream_HT_DCPERIOD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_536stream_HT_DCPERIOD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_537stream_HT_DCPERIOD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_DCPERIOD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3108, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_DCPERIOD") < 0)) __PYX_ERR(4, 3108, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_DCPERIOD", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3108, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3110, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_536stream_HT_DCPERIOD(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_DCPERIOD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3127 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3128 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3129 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3130 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3131 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_DCPERIOD", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_DCPERIOD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3132 + * outreal = NaN + * retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPERIOD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3133 + * retCode = lib.TA_HT_DCPERIOD( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPERIOD", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3133, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3108 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPERIOD( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPERIOD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3135 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPHASE( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE, " HT_DCPHASE(real)\n\n Hilbert Transform - Dominant Cycle Phase (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE = {"stream_HT_DCPHASE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_538stream_HT_DCPHASE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_539stream_HT_DCPHASE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_DCPHASE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3135, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_DCPHASE") < 0)) __PYX_ERR(4, 3135, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_DCPHASE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3135, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3137, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_538stream_HT_DCPHASE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_DCPHASE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3154 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3155 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3156 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3157 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPHASE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3158 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_DCPHASE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_DCPHASE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3159 + * outreal = NaN + * retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPHASE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_DCPHASE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3159, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3160 + * retCode = lib.TA_HT_DCPHASE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_DCPHASE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3135 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPHASE( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_DCPHASE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3162 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_PHASOR( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR, " HT_PHASOR(real)\n\n Hilbert Transform - Phasor Components (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n inphase\n quadrature\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR = {"stream_HT_PHASOR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_540stream_HT_PHASOR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_541stream_HT_PHASOR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_PHASOR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3162, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_PHASOR") < 0)) __PYX_ERR(4, 3162, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_PHASOR", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3162, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3164, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_540stream_HT_PHASOR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outinphase; + double __pyx_v_outquadrature; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_PHASOR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3183 + * double outinphase + * double outquadrature + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3184 + * double outquadrature + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outinphase = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3185 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outinphase = NaN + * outquadrature = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3186 + * real_data = real.data + * length = real.shape[0] + * outinphase = NaN # <<<<<<<<<<<<<< + * outquadrature = NaN + * retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) + */ + __pyx_v_outinphase = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3187 + * length = real.shape[0] + * outinphase = NaN + * outquadrature = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) + * _ta_check_success("TA_HT_PHASOR", retCode) + */ + __pyx_v_outquadrature = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3188 + * outinphase = NaN + * outquadrature = NaN + * retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_PHASOR", retCode) + * return outinphase , outquadrature + */ + __pyx_v_retCode = TA_HT_PHASOR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinphase), (&__pyx_v_outquadrature)); + + /* "talib/_stream.pxi":3189 + * outquadrature = NaN + * retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) + * _ta_check_success("TA_HT_PHASOR", retCode) # <<<<<<<<<<<<<< + * return outinphase , outquadrature + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_PHASOR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3190 + * retCode = lib.TA_HT_PHASOR( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinphase , &outquadrature ) + * _ta_check_success("TA_HT_PHASOR", retCode) + * return outinphase , outquadrature # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outinphase); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outquadrature); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3190, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 3190, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 3190, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3162 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_PHASOR( np.ndarray real not None ): + */ + + /* 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.stream_HT_PHASOR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3192 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_SINE( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_542stream_HT_SINE, " HT_SINE(real)\n\n Hilbert Transform - SineWave (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n sine\n leadsine\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE = {"stream_HT_SINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_542stream_HT_SINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_543stream_HT_SINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_SINE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3192, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_SINE") < 0)) __PYX_ERR(4, 3192, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_SINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3192, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3194, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_542stream_HT_SINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outsine; + double __pyx_v_outleadsine; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_SINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3213 + * double outsine + * double outleadsine + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3213, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3214 + * double outleadsine + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outsine = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3215 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outsine = NaN + * outleadsine = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3216 + * real_data = real.data + * length = real.shape[0] + * outsine = NaN # <<<<<<<<<<<<<< + * outleadsine = NaN + * retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) + */ + __pyx_v_outsine = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3217 + * length = real.shape[0] + * outsine = NaN + * outleadsine = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) + * _ta_check_success("TA_HT_SINE", retCode) + */ + __pyx_v_outleadsine = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3218 + * outsine = NaN + * outleadsine = NaN + * retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_SINE", retCode) + * return outsine , outleadsine + */ + __pyx_v_retCode = TA_HT_SINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outsine), (&__pyx_v_outleadsine)); + + /* "talib/_stream.pxi":3219 + * outleadsine = NaN + * retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) + * _ta_check_success("TA_HT_SINE", retCode) # <<<<<<<<<<<<<< + * return outsine , outleadsine + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_SINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3220 + * retCode = lib.TA_HT_SINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outsine , &outleadsine ) + * _ta_check_success("TA_HT_SINE", retCode) + * return outsine , outleadsine # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outsine); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outleadsine); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 3220, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 3220, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3192 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_SINE( np.ndarray real not None ): + */ + + /* 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.stream_HT_SINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3222 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDLINE( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE, " HT_TRENDLINE(real)\n\n Hilbert Transform - Instantaneous Trendline (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE = {"stream_HT_TRENDLINE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_544stream_HT_TRENDLINE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_545stream_HT_TRENDLINE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_TRENDLINE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3222, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_TRENDLINE") < 0)) __PYX_ERR(4, 3222, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDLINE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3222, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3224, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_544stream_HT_TRENDLINE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_TRENDLINE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3241 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3242 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3243 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3244 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3245 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_TRENDLINE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_HT_TRENDLINE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3246 + * outreal = NaN + * retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDLINE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3247 + * retCode = lib.TA_HT_TRENDLINE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_HT_TRENDLINE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3222 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDLINE( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDLINE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3249 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDMODE( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE, " HT_TRENDMODE(real)\n\n Hilbert Transform - Trend vs Cycle Mode (Cycle Indicators)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE = {"stream_HT_TRENDMODE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_546stream_HT_TRENDMODE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_547stream_HT_TRENDMODE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_HT_TRENDMODE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3249, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_HT_TRENDMODE") < 0)) __PYX_ERR(4, 3249, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_HT_TRENDMODE", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3249, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3251, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_546stream_HT_TRENDMODE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_HT_TRENDMODE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3268 + * int outnbelement + * int outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3268, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3269 + * int outinteger + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outinteger = 0 + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3270 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3271 + * real_data = real.data + * length = real.shape[0] + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":3272 + * length = real.shape[0] + * outinteger = 0 + * retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_HT_TRENDMODE", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_HT_TRENDMODE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":3273 + * outinteger = 0 + * retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_HT_TRENDMODE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3273, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3274 + * retCode = lib.TA_HT_TRENDMODE( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_HT_TRENDMODE", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3249 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDMODE( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_HT_TRENDMODE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_KAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_548stream_KAMA, " KAMA(real[, timeperiod=?])\n\n Kaufman Adaptive Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_549stream_KAMA = {"stream_KAMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_549stream_KAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_548stream_KAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_549stream_KAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_KAMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3276, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3276, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_KAMA") < 0)) __PYX_ERR(4, 3276, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3278, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_KAMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3276, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3278, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_548stream_KAMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_548stream_KAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_KAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3297 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3297, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3298 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3299 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3300 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_KAMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3301 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_KAMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_KAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3302 + * outreal = NaN + * retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_KAMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_KAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3303 + * retCode = lib.TA_KAMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_KAMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_KAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3305 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_550stream_LINEARREG, " LINEARREG(real[, timeperiod=?])\n\n Linear Regression (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG = {"stream_LINEARREG", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_550stream_LINEARREG}; +static PyObject *__pyx_pw_5talib_7_ta_lib_551stream_LINEARREG(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_LINEARREG (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3305, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3305, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG") < 0)) __PYX_ERR(4, 3305, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3307, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3305, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3307, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_550stream_LINEARREG(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LINEARREG", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3326 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3326, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3327 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3328 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3329 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3330 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3331 + * outreal = NaN + * retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3331, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3332 + * retCode = lib.TA_LINEARREG( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3305 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3334 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE, " LINEARREG_ANGLE(real[, timeperiod=?])\n\n Linear Regression Angle (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE = {"stream_LINEARREG_ANGLE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_552stream_LINEARREG_ANGLE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_553stream_LINEARREG_ANGLE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_LINEARREG_ANGLE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3334, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3334, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_ANGLE") < 0)) __PYX_ERR(4, 3334, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3336, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_ANGLE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3334, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3336, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_552stream_LINEARREG_ANGLE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LINEARREG_ANGLE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3355 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3356 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3357 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3358 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3359 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_ANGLE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3360 + * outreal = NaN + * retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3360, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3361 + * retCode = lib.TA_LINEARREG_ANGLE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_ANGLE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3334 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_ANGLE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3363 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT, " LINEARREG_INTERCEPT(real[, timeperiod=?])\n\n Linear Regression Intercept (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT = {"stream_LINEARREG_INTERCEPT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_LINEARREG_INTERCEPT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3363, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3363, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_INTERCEPT") < 0)) __PYX_ERR(4, 3363, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3365, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_INTERCEPT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3363, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3365, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_554stream_LINEARREG_INTERCEPT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LINEARREG_INTERCEPT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3384 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3384, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3385 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3386 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3387 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3388 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_INTERCEPT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3389 + * outreal = NaN + * retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3389, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3390 + * retCode = lib.TA_LINEARREG_INTERCEPT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_INTERCEPT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3363 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_INTERCEPT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3392 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE, " LINEARREG_SLOPE(real[, timeperiod=?])\n\n Linear Regression Slope (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE = {"stream_LINEARREG_SLOPE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_556stream_LINEARREG_SLOPE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_557stream_LINEARREG_SLOPE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_LINEARREG_SLOPE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3392, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3392, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LINEARREG_SLOPE") < 0)) __PYX_ERR(4, 3392, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3394, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LINEARREG_SLOPE", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3392, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3394, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_556stream_LINEARREG_SLOPE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LINEARREG_SLOPE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3413 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3414 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3415 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3416 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3417 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LINEARREG_SLOPE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3418 + * outreal = NaN + * retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3419 + * retCode = lib.TA_LINEARREG_SLOPE( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LINEARREG_SLOPE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3419, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3392 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LINEARREG_SLOPE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3421 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LN( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_LN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_558stream_LN, " LN(real)\n\n Vector Log Natural (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_559stream_LN = {"stream_LN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_559stream_LN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_558stream_LN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_559stream_LN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_LN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3421, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LN") < 0)) __PYX_ERR(4, 3421, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3421, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3423, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_558stream_LN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_558stream_LN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3440 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3441 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3442 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3443 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LN", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3444 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3445 + * outreal = NaN + * retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3445, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3446 + * retCode = lib.TA_LN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3446, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3421 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LN( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3448 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LOG10( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_560stream_LOG10, " LOG10(real)\n\n Vector Log10 (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_561stream_LOG10 = {"stream_LOG10", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_561stream_LOG10, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_560stream_LOG10}; +static PyObject *__pyx_pw_5talib_7_ta_lib_561stream_LOG10(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_LOG10 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3448, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_LOG10") < 0)) __PYX_ERR(4, 3448, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_LOG10", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 3448, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3450, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_560stream_LOG10(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_560stream_LOG10(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_LOG10", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3467 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3467, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3468 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3469 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3470 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LOG10", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3471 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_LOG10", retCode) + * return outreal + */ + __pyx_v_retCode = TA_LOG10((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3472 + * outreal = NaN + * retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LOG10", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_LOG10, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3473 + * retCode = lib.TA_LOG10( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_LOG10", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3448 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LOG10( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_LOG10", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3475 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_MA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_562stream_MA, " MA(real[, timeperiod=?, matype=?])\n\n Moving average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_563stream_MA = {"stream_MA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_563stream_MA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_562stream_MA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_563stream_MA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + 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("stream_MA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3475, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MA") < 0)) __PYX_ERR(4, 3475, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3477, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_matype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3477, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3475, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3477, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_562stream_MA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_562stream_MA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, int __pyx_v_matype) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3497 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3497, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3498 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3499 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3500 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3501 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3502 + * outreal = NaN + * retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3503 + * retCode = lib.TA_MA( (length) - 1 , (length) - 1 , real_data , timeperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3475 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3505 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_MACD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_564stream_MACD, " MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?])\n\n Moving Average Convergence/Divergence (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n signalperiod: 9\n Outputs:\n macd\n macdsignal\n macdhist\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_565stream_MACD = {"stream_MACD", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_565stream_MACD, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_564stream_MACD}; +static PyObject *__pyx_pw_5talib_7_ta_lib_565stream_MACD(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_signalperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MACD (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_signalperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3505, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACD") < 0)) __PYX_ERR(4, 3505, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3507, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACD", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 3505, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3507, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_564stream_MACD(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_564stream_MACD(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MACD", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3532 + * double outmacdsignal + * double outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3532, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3533 + * double outmacdhist + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outmacd = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3534 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outmacd = NaN + * outmacdsignal = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3535 + * real_data = real.data + * length = real.shape[0] + * outmacd = NaN # <<<<<<<<<<<<<< + * outmacdsignal = NaN + * outmacdhist = NaN + */ + __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3536 + * length = real.shape[0] + * outmacd = NaN + * outmacdsignal = NaN # <<<<<<<<<<<<<< + * outmacdhist = NaN + * retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + */ + __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3537 + * outmacd = NaN + * outmacdsignal = NaN + * outmacdhist = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACD", retCode) + */ + __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3538 + * outmacdsignal = NaN + * outmacdhist = NaN + * retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACD", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACD((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + /* "talib/_stream.pxi":3539 + * outmacdhist = NaN + * retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACD", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACD, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3539, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3540 + * retCode = lib.TA_MACD( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACD", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3540, __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)) __PYX_ERR(4, 3540, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(4, 3540, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(4, 3540, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3505 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + + /* 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_MACD", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3542 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_566stream_MACDEXT, " MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?])\n\n MACD with controllable MA type (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n fastmatype: 0\n slowperiod: 26\n slowmatype: 0\n signalperiod: 9\n signalmatype: 0\n Outputs:\n macd\n macdsignal\n macdhist\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT = {"stream_MACDEXT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_566stream_MACDEXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_567stream_MACDEXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_fastperiod; + int __pyx_v_fastmatype; + int __pyx_v_slowperiod; + int __pyx_v_slowmatype; + int __pyx_v_signalperiod; + int __pyx_v_signalmatype; + #if !CYTHON_METH_FASTCALL + CYTHON_UNUSED Py_ssize_t __pyx_nargs; + #endif + CYTHON_UNUSED PyObject *const *__pyx_kwvalues; + 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("stream_MACDEXT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_fastmatype,&__pyx_n_s_slowperiod,&__pyx_n_s_slowmatype,&__pyx_n_s_signalperiod,&__pyx_n_s_signalmatype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastmatype); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowmatype); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalmatype); + if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3542, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACDEXT") < 0)) __PYX_ERR(4, 3542, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastmatype = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_fastmatype = ((int)((int)0)); + } + if (values[3]) { + __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowmatype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_slowmatype = ((int)((int)0)); + } + if (values[5]) { + __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + if (values[6]) { + __pyx_v_signalmatype = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_signalmatype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3544, __pyx_L3_error) + } else { + __pyx_v_signalmatype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACDEXT", 0, 1, 7, __pyx_nargs); __PYX_ERR(4, 3542, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3544, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(__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; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_566stream_MACDEXT(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MACDEXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3572 + * double outmacdsignal + * double outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3572, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3573 + * double outmacdhist + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outmacd = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3574 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outmacd = NaN + * outmacdsignal = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3575 + * real_data = real.data + * length = real.shape[0] + * outmacd = NaN # <<<<<<<<<<<<<< + * outmacdsignal = NaN + * outmacdhist = NaN + */ + __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3576 + * length = real.shape[0] + * outmacd = NaN + * outmacdsignal = NaN # <<<<<<<<<<<<<< + * outmacdhist = NaN + * retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + */ + __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3577 + * outmacd = NaN + * outmacdsignal = NaN + * outmacdhist = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDEXT", retCode) + */ + __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3578 + * outmacdsignal = NaN + * outmacdhist = NaN + * retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACDEXT", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACDEXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_fastmatype, __pyx_v_slowperiod, __pyx_v_slowmatype, __pyx_v_signalperiod, __pyx_v_signalmatype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + /* "talib/_stream.pxi":3579 + * outmacdhist = NaN + * retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDEXT", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDEXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3579, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3580 + * retCode = lib.TA_MACDEXT( (length) - 1 , (length) - 1 , real_data , fastperiod , fastmatype , slowperiod , slowmatype , signalperiod , signalmatype , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDEXT", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3580, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3580, __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)) __PYX_ERR(4, 3580, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(4, 3580, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(4, 3580, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3542 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + + /* 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_MACDEXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3582 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_568stream_MACDFIX, " MACDFIX(real[, signalperiod=?])\n\n Moving Average Convergence/Divergence Fix 12/26 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n signalperiod: 9\n Outputs:\n macd\n macdsignal\n macdhist\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX = {"stream_MACDFIX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_568stream_MACDFIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_569stream_MACDFIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MACDFIX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_signalperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3582, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_signalperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3582, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MACDFIX") < 0)) __PYX_ERR(4, 3582, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_signalperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_signalperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3584, __pyx_L3_error) + } else { + __pyx_v_signalperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MACDFIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3582, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3584, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(__pyx_self, __pyx_v_real, __pyx_v_signalperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_568stream_MACDFIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_signalperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outmacd; + double __pyx_v_outmacdsignal; + double __pyx_v_outmacdhist; + 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; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MACDFIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3607 + * double outmacdsignal + * double outmacdhist + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3608 + * double outmacdhist + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outmacd = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3609 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outmacd = NaN + * outmacdsignal = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3610 + * real_data = real.data + * length = real.shape[0] + * outmacd = NaN # <<<<<<<<<<<<<< + * outmacdsignal = NaN + * outmacdhist = NaN + */ + __pyx_v_outmacd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3611 + * length = real.shape[0] + * outmacd = NaN + * outmacdsignal = NaN # <<<<<<<<<<<<<< + * outmacdhist = NaN + * retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + */ + __pyx_v_outmacdsignal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3612 + * outmacd = NaN + * outmacdsignal = NaN + * outmacdhist = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDFIX", retCode) + */ + __pyx_v_outmacdhist = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3613 + * outmacdsignal = NaN + * outmacdhist = NaN + * retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MACDFIX", retCode) + * return outmacd , outmacdsignal , outmacdhist + */ + __pyx_v_retCode = TA_MACDFIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_signalperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmacd), (&__pyx_v_outmacdsignal), (&__pyx_v_outmacdhist)); + + /* "talib/_stream.pxi":3614 + * outmacdhist = NaN + * retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDFIX", retCode) # <<<<<<<<<<<<<< + * return outmacd , outmacdsignal , outmacdhist + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MACDFIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3615 + * retCode = lib.TA_MACDFIX( (length) - 1 , (length) - 1 , real_data , signalperiod , &outbegidx , &outnbelement , &outmacd , &outmacdsignal , &outmacdhist ) + * _ta_check_success("TA_MACDFIX", retCode) + * return outmacd , outmacdsignal , outmacdhist # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmacd); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmacdsignal); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outmacdhist); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3615, __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)) __PYX_ERR(4, 3615, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_2)) __PYX_ERR(4, 3615, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_3)) __PYX_ERR(4, 3615, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3582 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + + /* 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_MACDFIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3617 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_MAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_570stream_MAMA, " MAMA(real[, fastlimit=?, slowlimit=?])\n\n MESA Adaptive Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastlimit: 0.5\n slowlimit: 0.05\n Outputs:\n mama\n fama\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_571stream_MAMA = {"stream_MAMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_571stream_MAMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_570stream_MAMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_571stream_MAMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MAMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastlimit,&__pyx_n_s_slowlimit,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastlimit); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowlimit); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3617, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAMA") < 0)) __PYX_ERR(4, 3617, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 3619, __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(4, 3619, __pyx_L3_error) + } else { + __pyx_v_slowlimit = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAMA", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 3617, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3619, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_570stream_MAMA(__pyx_self, __pyx_v_real, __pyx_v_fastlimit, __pyx_v_slowlimit); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_570stream_MAMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, double __pyx_v_fastlimit, double __pyx_v_slowlimit) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outmama; + double __pyx_v_outfama; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MAMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3641 + * double outmama + * double outfama + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3642 + * double outfama + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outmama = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3643 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outmama = NaN + * outfama = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3644 + * real_data = real.data + * length = real.shape[0] + * outmama = NaN # <<<<<<<<<<<<<< + * outfama = NaN + * retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) + */ + __pyx_v_outmama = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3645 + * length = real.shape[0] + * outmama = NaN + * outfama = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) + * _ta_check_success("TA_MAMA", retCode) + */ + __pyx_v_outfama = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3646 + * outmama = NaN + * outfama = NaN + * retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAMA", retCode) + * return outmama , outfama + */ + __pyx_v_retCode = TA_MAMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastlimit, __pyx_v_slowlimit, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmama), (&__pyx_v_outfama)); + + /* "talib/_stream.pxi":3647 + * outfama = NaN + * retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) + * _ta_check_success("TA_MAMA", retCode) # <<<<<<<<<<<<<< + * return outmama , outfama + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3648 + * retCode = lib.TA_MAMA( (length) - 1 , (length) - 1 , real_data , fastlimit , slowlimit , &outbegidx , &outnbelement , &outmama , &outfama ) + * _ta_check_success("TA_MAMA", retCode) + * return outmama , outfama # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmama); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfama); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 3648, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 3648, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3617 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + + /* 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.stream_MAMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3650 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_MAVP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_572stream_MAVP, " MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?])\n\n Moving average with variable period (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n periods: (any ndarray)\n Parameters:\n minperiod: 2\n maxperiod: 30\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_573stream_MAVP = {"stream_MAVP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_573stream_MAVP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_572stream_MAVP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_573stream_MAVP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MAVP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_periods,&__pyx_n_s_minperiod,&__pyx_n_s_maxperiod,&__pyx_n_s_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_periods)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, 1); __PYX_ERR(4, 3650, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_minperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maxperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3650, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAVP") < 0)) __PYX_ERR(4, 3650, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_minperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) + } else { + __pyx_v_minperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_maxperiod = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_maxperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) + } else { + __pyx_v_maxperiod = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3652, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAVP", 0, 2, 5, __pyx_nargs); __PYX_ERR(4, 3650, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3652, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_periods), __pyx_ptype_5numpy_ndarray, 0, "periods", 0))) __PYX_ERR(4, 3652, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_572stream_MAVP(__pyx_self, __pyx_v_real, __pyx_v_periods, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_572stream_MAVP(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + double *__pyx_v_periods_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MAVP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_periods); + + /* "talib/_stream.pxi":3675 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * periods = check_array(periods) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3676 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * periods = check_array(periods) + * periods_data = periods.data + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3677 + * real = check_array(real) + * real_data = real.data + * periods = check_array(periods) # <<<<<<<<<<<<<< + * periods_data = periods.data + * length = check_length2(real, periods) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_periods)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3677, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_periods, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3678 + * real_data = real.data + * periods = check_array(periods) + * periods_data = periods.data # <<<<<<<<<<<<<< + * length = check_length2(real, periods) + * outreal = NaN + */ + __pyx_v_periods_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_periods)); + + /* "talib/_stream.pxi":3679 + * periods = check_array(periods) + * periods_data = periods.data + * length = check_length2(real, periods) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 3679, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":3680 + * periods_data = periods.data + * length = check_length2(real, periods) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAVP", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3681 + * length = check_length2(real, periods) + * outreal = NaN + * retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAVP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MAVP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_periods_data, __pyx_v_minperiod, __pyx_v_maxperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3682 + * outreal = NaN + * retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAVP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAVP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3683 + * retCode = lib.TA_MAVP( (length) - 1 , (length) - 1 , real_data , periods_data , minperiod , maxperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAVP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3683, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3650 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MAVP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_periods); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3685 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_574stream_MAX, " MAX(real[, timeperiod=?])\n\n Highest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_575stream_MAX = {"stream_MAX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_575stream_MAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_574stream_MAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_575stream_MAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MAX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3685, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3685, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAX") < 0)) __PYX_ERR(4, 3685, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3687, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3685, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3687, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_574stream_MAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_574stream_MAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3706 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3706, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3707 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3708 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3709 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAX", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3710 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3711 + * outreal = NaN + * retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3712 + * retCode = lib.TA_MAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MAX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3685 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3714 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX, " MAXINDEX(real[, timeperiod=?])\n\n Index of highest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX = {"stream_MAXINDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_576stream_MAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_577stream_MAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MAXINDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3714, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MAXINDEX") < 0)) __PYX_ERR(4, 3714, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3716, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3714, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3716, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_576stream_MAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MAXINDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3735 + * int outnbelement + * int outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3735, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3736 + * int outinteger + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outinteger = 0 + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3737 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3738 + * real_data = real.data + * length = real.shape[0] + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MAXINDEX", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":3739 + * length = real.shape[0] + * outinteger = 0 + * retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MAXINDEX", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_MAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":3740 + * outinteger = 0 + * retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MAXINDEX", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3740, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3741 + * retCode = lib.TA_MAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MAXINDEX", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3714 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3743 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE, " MEDPRICE(high, low)\n\n Median Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE = {"stream_MEDPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_578stream_MEDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_579stream_MEDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MEDPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3743, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3743, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, 1); __PYX_ERR(4, 3743, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MEDPRICE") < 0)) __PYX_ERR(4, 3743, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_high = ((PyArrayObject *)values[0]); + __pyx_v_low = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MEDPRICE", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 3743, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3745, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3745, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_578stream_MEDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MEDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":3763 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3763, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3764 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":3765 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3765, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3766 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":3767 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 3767, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":3768 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MEDPRICE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3769 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MEDPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MEDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3770 + * outreal = NaN + * retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MEDPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MEDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3771 + * retCode = lib.TA_MEDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MEDPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3771, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3743 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MEDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3773 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_580stream_MFI, " MFI(high, low, close, volume[, timeperiod=?])\n\n Money Flow Index (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close', 'volume']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_581stream_MFI = {"stream_MFI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_581stream_MFI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_580stream_MFI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_581stream_MFI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_METH_FASTCALL + 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("stream_MFI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_volume,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 1); __PYX_ERR(4, 3773, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 2); __PYX_ERR(4, 3773, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (likely((values[3] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[3]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, 3); __PYX_ERR(4, 3773, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3773, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MFI") < 0)) __PYX_ERR(4, 3773, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3775, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MFI", 0, 4, 5, __pyx_nargs); __PYX_ERR(4, 3773, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 3775, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_580stream_MFI(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close, __pyx_v_volume, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_580stream_MFI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + double *__pyx_v_volume_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_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); + + /* "talib/_stream.pxi":3797 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3797, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3798 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":3799 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3799, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3800 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":3801 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * volume = check_array(volume) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3801, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3802 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * volume = check_array(volume) + * volume_data = volume.data + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":3803 + * close = check_array(close) + * close_data = close.data + * volume = check_array(volume) # <<<<<<<<<<<<<< + * volume_data = volume.data + * length = check_length4(high, low, close, volume) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3803, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3804 + * close_data = close.data + * volume = check_array(volume) + * volume_data = volume.data # <<<<<<<<<<<<<< + * length = check_length4(high, low, close, volume) + * outreal = NaN + */ + __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + /* "talib/_stream.pxi":3805 + * volume = check_array(volume) + * volume_data = volume.data + * length = check_length4(high, low, close, volume) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 3805, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":3806 + * volume_data = volume.data + * length = check_length4(high, low, close, volume) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MFI", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3807 + * length = check_length4(high, low, close, volume) + * outreal = NaN + * retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MFI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MFI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_volume_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3808 + * outreal = NaN + * retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MFI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MFI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3808, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3809 + * retCode = lib.TA_MFI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , volume_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MFI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3773 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MFI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":3811 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT, " MIDPOINT(real[, timeperiod=?])\n\n MidPoint over period (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT = {"stream_MIDPOINT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_582stream_MIDPOINT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_583stream_MIDPOINT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MIDPOINT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3811, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3811, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIDPOINT") < 0)) __PYX_ERR(4, 3811, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3813, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIDPOINT", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3811, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3813, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_582stream_MIDPOINT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MIDPOINT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3832 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3832, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3833 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3834 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3835 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPOINT", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3836 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIDPOINT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIDPOINT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3837 + * outreal = NaN + * retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPOINT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPOINT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3837, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3838 + * retCode = lib.TA_MIDPOINT( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPOINT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3838, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3811 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MIDPOINT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3840 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE, " MIDPRICE(high, low[, timeperiod=?])\n\n Midpoint Price over period (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE = {"stream_MIDPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_584stream_MIDPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_585stream_MIDPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MIDPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, 1); __PYX_ERR(4, 3840, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3840, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIDPRICE") < 0)) __PYX_ERR(4, 3840, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3842, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIDPRICE", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 3840, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3842, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3842, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_584stream_MIDPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MIDPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":3862 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3862, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3863 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":3864 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3864, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3865 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":3866 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 3866, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":3867 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPRICE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3868 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIDPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIDPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3869 + * outreal = NaN + * retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIDPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3870 + * retCode = lib.TA_MIDPRICE( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIDPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3870, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3840 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MIDPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3872 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_586stream_MIN, " MIN(real[, timeperiod=?])\n\n Lowest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_587stream_MIN = {"stream_MIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_587stream_MIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_586stream_MIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_587stream_MIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MIN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3872, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3872, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MIN") < 0)) __PYX_ERR(4, 3872, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3874, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MIN", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3872, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3874, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_586stream_MIN(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_586stream_MIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3893 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3893, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3894 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3895 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3896 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIN", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3897 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MIN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":3898 + * outreal = NaN + * retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3898, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3899 + * retCode = lib.TA_MIN( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MIN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3899, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3872 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3901 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MININDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_588stream_MININDEX, " MININDEX(real[, timeperiod=?])\n\n Index of lowest value over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n integer (values are -100, 0 or 100)\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_589stream_MININDEX = {"stream_MININDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_589stream_MININDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_588stream_MININDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_589stream_MININDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MININDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3901, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3901, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MININDEX") < 0)) __PYX_ERR(4, 3901, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3903, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MININDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3901, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3903, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_588stream_MININDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_588stream_MININDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outinteger; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MININDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3922 + * int outnbelement + * int outinteger + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3923 + * int outinteger + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outinteger = 0 + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3924 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outinteger = 0 + * retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3925 + * real_data = real.data + * length = real.shape[0] + * outinteger = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MININDEX", retCode) + */ + __pyx_v_outinteger = 0; + + /* "talib/_stream.pxi":3926 + * length = real.shape[0] + * outinteger = 0 + * retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MININDEX", retCode) + * return outinteger + */ + __pyx_v_retCode = TA_MININDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outinteger)); + + /* "talib/_stream.pxi":3927 + * outinteger = 0 + * retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MININDEX", retCode) # <<<<<<<<<<<<<< + * return outinteger + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MININDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3927, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3928 + * retCode = lib.TA_MININDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outinteger ) + * _ta_check_success("TA_MININDEX", retCode) + * return outinteger # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outinteger); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3928, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3901 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MININDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3930 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MINMAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_590stream_MINMAX, " MINMAX(real[, timeperiod=?])\n\n Lowest and highest values over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n min\n max\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_591stream_MINMAX = {"stream_MINMAX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_591stream_MINMAX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_590stream_MINMAX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_591stream_MINMAX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MINMAX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3930, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3930, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINMAX") < 0)) __PYX_ERR(4, 3930, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3932, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINMAX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3930, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3932, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_590stream_MINMAX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_590stream_MINMAX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outmin; + double __pyx_v_outmax; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MINMAX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3953 + * double outmin + * double outmax + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3954 + * double outmax + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outmin = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3955 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outmin = NaN + * outmax = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3956 + * real_data = real.data + * length = real.shape[0] + * outmin = NaN # <<<<<<<<<<<<<< + * outmax = NaN + * retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) + */ + __pyx_v_outmin = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3957 + * length = real.shape[0] + * outmin = NaN + * outmax = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) + * _ta_check_success("TA_MINMAX", retCode) + */ + __pyx_v_outmax = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":3958 + * outmin = NaN + * outmax = NaN + * retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINMAX", retCode) + * return outmin , outmax + */ + __pyx_v_retCode = TA_MINMAX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outmin), (&__pyx_v_outmax)); + + /* "talib/_stream.pxi":3959 + * outmax = NaN + * retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) + * _ta_check_success("TA_MINMAX", retCode) # <<<<<<<<<<<<<< + * return outmin , outmax + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3960 + * retCode = lib.TA_MINMAX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outmin , &outmax ) + * _ta_check_success("TA_MINMAX", retCode) + * return outmin , outmax # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outmax); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3960, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 3960, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 3960, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3930 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* 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.stream_MINMAX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3962 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX, " MINMAXINDEX(real[, timeperiod=?])\n\n Indexes of lowest and highest values over a specified period (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n minidx\n maxidx\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX = {"stream_MINMAXINDEX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_592stream_MINMAXINDEX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_593stream_MINMAXINDEX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MINMAXINDEX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3962, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINMAXINDEX") < 0)) __PYX_ERR(4, 3962, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3964, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINMAXINDEX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 3962, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 3964, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_592stream_MINMAXINDEX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + int __pyx_v_outminidx; + int __pyx_v_outmaxidx; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MINMAXINDEX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":3985 + * int outminidx + * int outmaxidx + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3985, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3986 + * int outmaxidx + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outminidx = 0 + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":3987 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outminidx = 0 + * outmaxidx = 0 + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":3988 + * real_data = real.data + * length = real.shape[0] + * outminidx = 0 # <<<<<<<<<<<<<< + * outmaxidx = 0 + * retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) + */ + __pyx_v_outminidx = 0; + + /* "talib/_stream.pxi":3989 + * length = real.shape[0] + * outminidx = 0 + * outmaxidx = 0 # <<<<<<<<<<<<<< + * retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) + * _ta_check_success("TA_MINMAXINDEX", retCode) + */ + __pyx_v_outmaxidx = 0; + + /* "talib/_stream.pxi":3990 + * outminidx = 0 + * outmaxidx = 0 + * retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINMAXINDEX", retCode) + * return outminidx , outmaxidx + */ + __pyx_v_retCode = TA_MINMAXINDEX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outminidx), (&__pyx_v_outmaxidx)); + + /* "talib/_stream.pxi":3991 + * outmaxidx = 0 + * retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) + * _ta_check_success("TA_MINMAXINDEX", retCode) # <<<<<<<<<<<<<< + * return outminidx , outmaxidx + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINMAXINDEX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":3992 + * retCode = lib.TA_MINMAXINDEX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outminidx , &outmaxidx ) + * _ta_check_success("TA_MINMAXINDEX", retCode) + * return outminidx , outmaxidx # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = __Pyx_PyInt_From_int(__pyx_v_outminidx); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = __Pyx_PyInt_From_int(__pyx_v_outmaxidx); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 3992, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 3992, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3962 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* 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.stream_MINMAXINDEX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":3994 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI, " MINUS_DI(high, low, close[, timeperiod=?])\n\n Minus Directional Indicator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI = {"stream_MINUS_DI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_594stream_MINUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_595stream_MINUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MINUS_DI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 1); __PYX_ERR(4, 3994, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, 2); __PYX_ERR(4, 3994, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 3994, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINUS_DI") < 0)) __PYX_ERR(4, 3994, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 3996, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 3994, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 3996, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_594stream_MINUS_DI(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_594stream_MINUS_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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MINUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4017 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4017, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4018 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4019 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4019, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4020 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4021 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4022 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4023 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4023, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4024 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DI", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4025 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINUS_DI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MINUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4026 + * outreal = NaN + * retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4027 + * retCode = lib.TA_MINUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":3994 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM, " MINUS_DM(high, low[, timeperiod=?])\n\n Minus Directional Movement (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM = {"stream_MINUS_DM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_596stream_MINUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_597stream_MINUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MINUS_DM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, 1); __PYX_ERR(4, 4029, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4029, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MINUS_DM") < 0)) __PYX_ERR(4, 4029, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4031, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MINUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4029, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4031, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4031, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_596stream_MINUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MINUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":4051 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4051, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4052 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4053 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4053, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4054 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4055 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4055, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4056 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DM", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4057 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MINUS_DM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MINUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4058 + * outreal = NaN + * retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MINUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4058, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4059 + * retCode = lib.TA_MINUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MINUS_DM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4059, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MINUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4061 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_598stream_MOM, " MOM(real[, timeperiod=?])\n\n Momentum (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_599stream_MOM = {"stream_MOM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_599stream_MOM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_598stream_MOM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_599stream_MOM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_MOM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4061, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4061, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MOM") < 0)) __PYX_ERR(4, 4061, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4063, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MOM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4061, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4063, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_598stream_MOM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_598stream_MOM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MOM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4082 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4083 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4084 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4085 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MOM", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4086 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MOM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MOM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4087 + * outreal = NaN + * retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MOM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MOM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4088 + * retCode = lib.TA_MOM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MOM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4088, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4061 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MOM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4090 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MULT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_600stream_MULT, " MULT(real0, real1)\n\n Vector Arithmetic Mult (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_601stream_MULT = {"stream_MULT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_601stream_MULT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_600stream_MULT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_601stream_MULT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_MULT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4090, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4090, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, 1); __PYX_ERR(4, 4090, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_MULT") < 0)) __PYX_ERR(4, 4090, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_MULT", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4090, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4092, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4092, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_600stream_MULT(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_600stream_MULT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_MULT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":4111 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4111, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4112 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data + */ + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + /* "talib/_stream.pxi":4113 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4114 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN + */ + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + /* "talib/_stream.pxi":4115 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4115, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4116 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MULT", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4117 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_MULT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_MULT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4118 + * outreal = NaN + * retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MULT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_MULT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4119 + * retCode = lib.TA_MULT( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_MULT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4090 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_MULT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4121 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_602stream_NATR, " NATR(high, low, close[, timeperiod=?])\n\n Normalized Average True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_603stream_NATR = {"stream_NATR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_603stream_NATR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_602stream_NATR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_603stream_NATR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_NATR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 1); __PYX_ERR(4, 4121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, 2); __PYX_ERR(4, 4121, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4121, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_NATR") < 0)) __PYX_ERR(4, 4121, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4123, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_NATR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4121, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4123, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_602stream_NATR(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_602stream_NATR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_NATR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4144 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4145 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4146 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4147 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4148 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4149 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4150 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4150, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4151 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_NATR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4152 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_NATR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_NATR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4153 + * outreal = NaN + * retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_NATR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_NATR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4153, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4154 + * retCode = lib.TA_NATR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_NATR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4154, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4121 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_NATR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4156 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_604stream_OBV, " OBV(real, volume)\n\n On Balance Volume (Volume Indicators)\n\n Inputs:\n real: (any ndarray)\n prices: ['volume']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_605stream_OBV = {"stream_OBV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_605stream_OBV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_604stream_OBV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_605stream_OBV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_OBV (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_volume,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4156, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_volume)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4156, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, 1); __PYX_ERR(4, 4156, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_OBV") < 0)) __PYX_ERR(4, 4156, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + __pyx_v_volume = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_OBV", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4156, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4158, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_volume), __pyx_ptype_5numpy_ndarray, 0, "volume", 0))) __PYX_ERR(4, 4158, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_604stream_OBV(__pyx_self, __pyx_v_real, __pyx_v_volume); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_604stream_OBV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, PyArrayObject *__pyx_v_volume) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + double *__pyx_v_volume_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_OBV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + __Pyx_INCREF((PyObject *)__pyx_v_volume); + + /* "talib/_stream.pxi":4177 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * volume = check_array(volume) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4178 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * volume = check_array(volume) + * volume_data = volume.data + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4179 + * real = check_array(real) + * real_data = real.data + * volume = check_array(volume) # <<<<<<<<<<<<<< + * volume_data = volume.data + * length = check_length2(real, volume) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_volume)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_volume, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4180 + * real_data = real.data + * volume = check_array(volume) + * volume_data = volume.data # <<<<<<<<<<<<<< + * length = check_length2(real, volume) + * outreal = NaN + */ + __pyx_v_volume_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_volume)); + + /* "talib/_stream.pxi":4181 + * volume = check_array(volume) + * volume_data = volume.data + * length = check_length2(real, volume) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4181, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4182 + * volume_data = volume.data + * length = check_length2(real, volume) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_OBV", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4183 + * length = check_length2(real, volume) + * outreal = NaN + * retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_OBV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_OBV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_volume_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4184 + * outreal = NaN + * retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_OBV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_OBV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4184, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4185 + * retCode = lib.TA_OBV( (length) - 1 , (length) - 1 , real_data , volume_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_OBV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4156 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_OBV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XDECREF((PyObject *)__pyx_v_volume); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4187 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI, " PLUS_DI(high, low, close[, timeperiod=?])\n\n Plus Directional Indicator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI = {"stream_PLUS_DI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_606stream_PLUS_DI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_607stream_PLUS_DI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_PLUS_DI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 1); __PYX_ERR(4, 4187, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, 2); __PYX_ERR(4, 4187, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4187, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PLUS_DI") < 0)) __PYX_ERR(4, 4187, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4189, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DI", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 4187, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4189, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_606stream_PLUS_DI(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_606stream_PLUS_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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_PLUS_DI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4210 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4211 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4212 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4213 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4214 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4215 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4216 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4216, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4217 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DI", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4218 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PLUS_DI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PLUS_DI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4219 + * outreal = NaN + * retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4219, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4220 + * retCode = lib.TA_PLUS_DI( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4187 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4222 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM, " PLUS_DM(high, low[, timeperiod=?])\n\n Plus Directional Movement (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM = {"stream_PLUS_DM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_608stream_PLUS_DM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_609stream_PLUS_DM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_PLUS_DM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, 1); __PYX_ERR(4, 4222, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4222, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PLUS_DM") < 0)) __PYX_ERR(4, 4222, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[2]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4224, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PLUS_DM", 0, 2, 3, __pyx_nargs); __PYX_ERR(4, 4222, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4224, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4224, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_608stream_PLUS_DM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_PLUS_DM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":4244 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4245 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4246 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4247 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4248 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4248, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4249 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DM", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4250 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PLUS_DM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PLUS_DM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4251 + * outreal = NaN + * retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PLUS_DM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4251, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4252 + * retCode = lib.TA_PLUS_DM( (length) - 1 , (length) - 1 , high_data , low_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PLUS_DM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4252, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4222 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PLUS_DM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4254 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_610stream_PPO, " PPO(real[, fastperiod=?, slowperiod=?, matype=?])\n\n Percentage Price Oscillator (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n fastperiod: 12\n slowperiod: 26\n matype: 0 (Simple Moving Average)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_611stream_PPO = {"stream_PPO", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_611stream_PPO, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_610stream_PPO}; +static PyObject *__pyx_pw_5talib_7_ta_lib_611stream_PPO(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_fastperiod; + int __pyx_v_slowperiod; + int __pyx_v_matype; + #if !CYTHON_METH_FASTCALL + 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("stream_PPO (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_fastperiod,&__pyx_n_s_slowperiod,&__pyx_n_s_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowperiod); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_matype); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4254, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_PPO") < 0)) __PYX_ERR(4, 4254, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_fastperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_fastperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) + } else { + __pyx_v_fastperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_slowperiod = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_slowperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) + } else { + __pyx_v_slowperiod = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_matype = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4256, __pyx_L3_error) + } else { + __pyx_v_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_PPO", 0, 1, 4, __pyx_nargs); __PYX_ERR(4, 4254, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4256, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_610stream_PPO(__pyx_self, __pyx_v_real, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_610stream_PPO(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_PPO", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4277 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4277, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4278 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4279 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4280 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PPO", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4281 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_PPO", retCode) + * return outreal + */ + __pyx_v_retCode = TA_PPO((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_fastperiod, __pyx_v_slowperiod, __pyx_v_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4282 + * outreal = NaN + * retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PPO", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_PPO, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4282, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4283 + * retCode = lib.TA_PPO( (length) - 1 , (length) - 1 , real_data , fastperiod , slowperiod , matype , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_PPO", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4254 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_PPO", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4285 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_ROC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_612stream_ROC, " ROC(real[, timeperiod=?])\n\n Rate of change : ((real/prevPrice)-1)*100 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_613stream_ROC = {"stream_ROC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_613stream_ROC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_612stream_ROC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_613stream_ROC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_ROC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4285, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4285, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROC") < 0)) __PYX_ERR(4, 4285, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4287, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROC", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4285, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4287, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_612stream_ROC(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_612stream_ROC(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ROC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4306 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4306, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4307 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4308 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4309 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROC", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4310 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4311 + * outreal = NaN + * retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4311, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4312 + * retCode = lib.TA_ROC( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4312, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4285 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ROC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4314 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_ROCP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_614stream_ROCP, " ROCP(real[, timeperiod=?])\n\n Rate of change Percentage: (real-prevPrice)/prevPrice (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_615stream_ROCP = {"stream_ROCP", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_615stream_ROCP, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_614stream_ROCP}; +static PyObject *__pyx_pw_5talib_7_ta_lib_615stream_ROCP(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_ROCP (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4314, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4314, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCP") < 0)) __PYX_ERR(4, 4314, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4316, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCP", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4314, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4316, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_614stream_ROCP(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_614stream_ROCP(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ROCP", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4335 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4336 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4337 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4338 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCP", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4339 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCP", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCP((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4340 + * outreal = NaN + * retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCP", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCP, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4340, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4341 + * retCode = lib.TA_ROCP( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCP", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4314 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ROCP", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4343 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_ROCR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_616stream_ROCR, " ROCR(real[, timeperiod=?])\n\n Rate of change ratio: (real/prevPrice) (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_617stream_ROCR = {"stream_ROCR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_617stream_ROCR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_616stream_ROCR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_617stream_ROCR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_ROCR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4343, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4343, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCR") < 0)) __PYX_ERR(4, 4343, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4345, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCR", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4343, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4345, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_616stream_ROCR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_616stream_ROCR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ROCR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4364 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4365 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4366 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4367 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4368 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4369 + * outreal = NaN + * retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4369, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4370 + * retCode = lib.TA_ROCR( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4343 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ROCR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4372 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_ROCR100(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_618stream_ROCR100, " ROCR100(real[, timeperiod=?])\n\n Rate of change ratio 100 scale: (real/prevPrice)*100 (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 10\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_619stream_ROCR100 = {"stream_ROCR100", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_619stream_ROCR100, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_618stream_ROCR100}; +static PyObject *__pyx_pw_5talib_7_ta_lib_619stream_ROCR100(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_ROCR100 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4372, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4372, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ROCR100") < 0)) __PYX_ERR(4, 4372, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4374, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ROCR100", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4372, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4374, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_618stream_ROCR100(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_618stream_ROCR100(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ROCR100", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4393 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4393, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4394 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4395 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4396 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR100", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4397 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ROCR100", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ROCR100((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4398 + * outreal = NaN + * retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR100", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ROCR100, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4398, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4399 + * retCode = lib.TA_ROCR100( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ROCR100", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4372 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ROCR100", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4401 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_RSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_620stream_RSI, " RSI(real[, timeperiod=?])\n\n Relative Strength Index (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_621stream_RSI = {"stream_RSI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_621stream_RSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_620stream_RSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_621stream_RSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_RSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4401, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4401, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_RSI") < 0)) __PYX_ERR(4, 4401, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4403, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_RSI", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4401, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4403, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_620stream_RSI(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_620stream_RSI(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_RSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4422 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4423 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4424 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4425 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_RSI", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4426 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_RSI", retCode) + * return outreal + */ + __pyx_v_retCode = TA_RSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4427 + * outreal = NaN + * retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_RSI", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_RSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4428 + * retCode = lib.TA_RSI( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_RSI", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4428, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4401 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_RSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4430 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_SAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_622stream_SAR, " SAR(high, low[, acceleration=?, maximum=?])\n\n Parabolic SAR (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\n acceleration: 0.02\n maximum: 0.2\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_623stream_SAR = {"stream_SAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_623stream_SAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_622stream_SAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_623stream_SAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_SAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_acceleration,&__pyx_n_s_maximum,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, 1); __PYX_ERR(4, 4430, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_acceleration); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_maximum); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4430, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SAR") < 0)) __PYX_ERR(4, 4430, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 4432, __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(4, 4432, __pyx_L3_error) + } else { + __pyx_v_maximum = ((double)((double)0.2)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SAR", 0, 2, 4, __pyx_nargs); __PYX_ERR(4, 4430, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4432, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4432, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_622stream_SAR(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_acceleration, __pyx_v_maximum); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_622stream_SAR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":4453 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4453, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4454 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4455 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4455, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4456 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4457 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4457, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4458 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4459 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SAR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_acceleration, __pyx_v_maximum, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4460 + * outreal = NaN + * retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4460, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4461 + * retCode = lib.TA_SAR( (length) - 1 , (length) - 1 , high_data , low_data , acceleration , maximum , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4430 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4463 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_624stream_SAREXT, " SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?])\n\n Parabolic SAR - Extended (Overlap Studies)\n\n Inputs:\n prices: ['high', 'low']\n Parameters:\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\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_625stream_SAREXT = {"stream_SAREXT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_625stream_SAREXT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_624stream_SAREXT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_625stream_SAREXT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_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_METH_FASTCALL + 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}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_SAREXT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_startvalue,&__pyx_n_s_offsetonreverse,&__pyx_n_s_accelerationinitlong,&__pyx_n_s_accelerationlong,&__pyx_n_s_accelerationmaxlong,&__pyx_n_s_accelerationinitshort,&__pyx_n_s_accelerationshort,&__pyx_n_s_accelerationmaxshort,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 10: values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, 1); __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_startvalue); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_offsetonreverse); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationinitlong); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationlong); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationmaxlong); + if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationinitshort); + if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 8: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationshort); + if (value) { values[8] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 9: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_accelerationmaxshort); + if (value) { values[9] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4463, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SAREXT") < 0)) __PYX_ERR(4, 4463, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 10: values[9] = __Pyx_Arg_FASTCALL(__pyx_args, 9); + CYTHON_FALLTHROUGH; + case 9: values[8] = __Pyx_Arg_FASTCALL(__pyx_args, 8); + CYTHON_FALLTHROUGH; + case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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(4, 4465, __pyx_L3_error) + } else { + __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __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(4, 4465, __pyx_L3_error) + } else { + __pyx_v_accelerationmaxshort = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SAREXT", 0, 2, 10, __pyx_nargs); __PYX_ERR(4, 4463, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4465, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4465, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_624stream_SAREXT(__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; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_624stream_SAREXT(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SAREXT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + + /* "talib/_stream.pxi":4492 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4492, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4493 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4494 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * length = check_length2(high, low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4494, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4495 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * length = check_length2(high, low) + * outreal = NaN + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4496 + * low = check_array(low) + * low_data = low.data + * length = check_length2(high, low) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4496, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4497 + * low_data = low.data + * length = check_length2(high, low) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAREXT", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4498 + * length = check_length2(high, low) + * outreal = NaN + * retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SAREXT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SAREXT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __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), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4499 + * outreal = NaN + * retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAREXT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SAREXT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4500 + * retCode = lib.TA_SAREXT( (length) - 1 , (length) - 1 , high_data , low_data , startvalue , offsetonreverse , accelerationinitlong , accelerationlong , accelerationmaxlong , accelerationinitshort , accelerationshort , accelerationmaxshort , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SAREXT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4500, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4463 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SAREXT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_high); + __Pyx_XDECREF((PyObject *)__pyx_v_low); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4502 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SIN( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_626stream_SIN, " SIN(real)\n\n Vector Trigonometric Sin (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_627stream_SIN = {"stream_SIN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_627stream_SIN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_626stream_SIN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_627stream_SIN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_SIN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4502, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SIN") < 0)) __PYX_ERR(4, 4502, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SIN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4502, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4504, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_626stream_SIN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_626stream_SIN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SIN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4521 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4522 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4523 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4524 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SIN", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4525 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SIN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SIN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4526 + * outreal = NaN + * retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SIN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SIN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4527 + * retCode = lib.TA_SIN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SIN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4527, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4502 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SIN( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SIN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4529 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SINH( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_SINH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_628stream_SINH, " SINH(real)\n\n Vector Trigonometric Sinh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_629stream_SINH = {"stream_SINH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_629stream_SINH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_628stream_SINH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_629stream_SINH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_SINH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4529, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SINH") < 0)) __PYX_ERR(4, 4529, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SINH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4529, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_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_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4531, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_628stream_SINH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_628stream_SINH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SINH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4548 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4549 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4550 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4551 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SINH", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4552 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SINH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SINH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4553 + * outreal = NaN + * retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SINH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SINH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4553, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4554 + * retCode = lib.TA_SINH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SINH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4554, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4529 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SINH( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SINH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4556 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_630stream_SMA, " SMA(real[, timeperiod=?])\n\n Simple Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_631stream_SMA = {"stream_SMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_631stream_SMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_630stream_SMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_631stream_SMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_SMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4556, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4556, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SMA") < 0)) __PYX_ERR(4, 4556, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4558, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4556, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4558, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_630stream_SMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_630stream_SMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4577 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4578 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4579 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4580 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4581 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4582 + * outreal = NaN + * retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4583 + * retCode = lib.TA_SMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4583, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4556 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4585 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SQRT( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_SQRT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_632stream_SQRT, " SQRT(real)\n\n Vector Square Root (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_633stream_SQRT = {"stream_SQRT", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_633stream_SQRT, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_632stream_SQRT}; +static PyObject *__pyx_pw_5talib_7_ta_lib_633stream_SQRT(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_SQRT (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4585, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SQRT") < 0)) __PYX_ERR(4, 4585, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SQRT", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4585, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4587, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_632stream_SQRT(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_632stream_SQRT(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SQRT", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4604 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4604, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4605 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4606 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4607 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SQRT", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4608 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SQRT", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SQRT((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4609 + * outreal = NaN + * retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SQRT", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SQRT, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4610 + * retCode = lib.TA_SQRT( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SQRT", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4585 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SQRT( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SQRT", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4612 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_STDDEV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_634stream_STDDEV, " STDDEV(real[, timeperiod=?, nbdev=?])\n\n Standard Deviation (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdev: 1.0\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_635stream_STDDEV = {"stream_STDDEV", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_635stream_STDDEV, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_634stream_STDDEV}; +static PyObject *__pyx_pw_5talib_7_ta_lib_635stream_STDDEV(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_STDDEV (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdev); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4612, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STDDEV") < 0)) __PYX_ERR(4, 4612, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4614, __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(4, 4614, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STDDEV", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4612, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4614, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_634stream_STDDEV(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_634stream_STDDEV(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_STDDEV", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4634 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4634, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4635 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4636 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4637 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_STDDEV", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4638 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STDDEV", retCode) + * return outreal + */ + __pyx_v_retCode = TA_STDDEV((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4639 + * outreal = NaN + * retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_STDDEV", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STDDEV, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4639, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4640 + * retCode = lib.TA_STDDEV( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_STDDEV", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4640, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4612 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_STDDEV", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4642 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_STOCH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_636stream_STOCH, " STOCH(high, low, close[, fastk_period=?, slowk_period=?, slowk_matype=?, slowd_period=?, slowd_matype=?])\n\n Stochastic (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n fastk_period: 5\n slowk_period: 3\n slowk_matype: 0\n slowd_period: 3\n slowd_matype: 0\n Outputs:\n slowk\n slowd\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_637stream_STOCH = {"stream_STOCH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_637stream_STOCH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_636stream_STOCH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_637stream_STOCH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_slowk_period; + int __pyx_v_slowk_matype; + int __pyx_v_slowd_period; + int __pyx_v_slowd_matype; + #if !CYTHON_METH_FASTCALL + 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}; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + PyObject *__pyx_r = 0; + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("stream_STOCH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_slowk_period,&__pyx_n_s_slowk_matype,&__pyx_n_s_slowd_period,&__pyx_n_s_slowd_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 1); __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, 2); __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowk_period); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowk_matype); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 6: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowd_period); + if (value) { values[6] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 7: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_slowd_matype); + if (value) { values[7] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4642, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCH") < 0)) __PYX_ERR(4, 4642, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 8: values[7] = __Pyx_Arg_FASTCALL(__pyx_args, 7); + CYTHON_FALLTHROUGH; + case 7: values[6] = __Pyx_Arg_FASTCALL(__pyx_args, 6); + CYTHON_FALLTHROUGH; + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_slowk_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_slowk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) + } else { + __pyx_v_slowk_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_slowk_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_slowk_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) + } else { + __pyx_v_slowk_matype = ((int)((int)0)); + } + if (values[6]) { + __pyx_v_slowd_period = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_slowd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) + } else { + __pyx_v_slowd_period = ((int)((int)-2147483648)); + } + if (values[7]) { + __pyx_v_slowd_matype = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_slowd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4644, __pyx_L3_error) + } else { + __pyx_v_slowd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCH", 0, 3, 8, __pyx_nargs); __PYX_ERR(4, 4642, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4644, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_636stream_STOCH(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_636stream_STOCH(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outslowk; + double __pyx_v_outslowd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __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("stream_STOCH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4671 + * double outslowk + * double outslowd + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4671, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4672 + * double outslowd + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4673 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4673, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4674 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4675 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4676 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outslowk = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4677 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outslowk = NaN + * outslowd = NaN + */ + __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(4, 4677, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4678 + * close_data = close.data + * length = check_length3(high, low, close) + * outslowk = NaN # <<<<<<<<<<<<<< + * outslowd = NaN + * retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) + */ + __pyx_v_outslowk = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4679 + * length = check_length3(high, low, close) + * outslowk = NaN + * outslowd = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) + * _ta_check_success("TA_STOCH", retCode) + */ + __pyx_v_outslowd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4680 + * outslowk = NaN + * outslowd = NaN + * retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCH", retCode) + * return outslowk , outslowd + */ + __pyx_v_retCode = TA_STOCH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __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), (&__pyx_v_outslowk), (&__pyx_v_outslowd)); + + /* "talib/_stream.pxi":4681 + * outslowd = NaN + * retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) + * _ta_check_success("TA_STOCH", retCode) # <<<<<<<<<<<<<< + * return outslowk , outslowd + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4681, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4682 + * retCode = lib.TA_STOCH( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , slowk_period , slowk_matype , slowd_period , slowd_matype , &outbegidx , &outnbelement , &outslowk , &outslowd ) + * _ta_check_success("TA_STOCH", retCode) + * return outslowk , outslowd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outslowk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outslowd); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4682, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4682, __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)) __PYX_ERR(4, 4682, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(4, 4682, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4642 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + + /* 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.stream_STOCH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4684 + * return outslowk , outslowd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_638stream_STOCHF, " STOCHF(high, low, close[, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n Stochastic Fast (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\n Outputs:\n fastk\n fastd\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_639stream_STOCHF = {"stream_STOCHF", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_639stream_STOCHF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_638stream_STOCHF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_639stream_STOCHF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_STOCHF (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 1); __PYX_ERR(4, 4684, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, 2); __PYX_ERR(4, 4684, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_period); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_matype); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4684, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCHF") < 0)) __PYX_ERR(4, 4684, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4686, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCHF", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 4684, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4686, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_638stream_STOCHF(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_638stream_STOCHF(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outfastk; + double __pyx_v_outfastd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __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("stream_STOCHF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4711 + * double outfastk + * double outfastd + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4711, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4712 + * double outfastd + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4713 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4713, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4714 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4715 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4716 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outfastk = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4717 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outfastk = NaN + * outfastd = NaN + */ + __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(4, 4717, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4718 + * close_data = close.data + * length = check_length3(high, low, close) + * outfastk = NaN # <<<<<<<<<<<<<< + * outfastd = NaN + * retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + */ + __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4719 + * length = check_length3(high, low, close) + * outfastk = NaN + * outfastd = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHF", retCode) + */ + __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4720 + * outfastk = NaN + * outfastd = NaN + * retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCHF", retCode) + * return outfastk , outfastd + */ + __pyx_v_retCode = TA_STOCHF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + + /* "talib/_stream.pxi":4721 + * outfastd = NaN + * retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHF", retCode) # <<<<<<<<<<<<<< + * return outfastk , outfastd + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4722 + * retCode = lib.TA_STOCHF( (length) - 1 , (length) - 1 , high_data , low_data , close_data , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHF", retCode) + * return outfastk , outfastd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_3 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4722, __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)) __PYX_ERR(4, 4722, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(4, 4722, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_3 = 0; + __pyx_r = __pyx_t_4; + __pyx_t_4 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4684 + * return outslowk , outslowd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + + /* 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.stream_STOCHF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4724 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI, " STOCHRSI(real[, timeperiod=?, fastk_period=?, fastd_period=?, fastd_matype=?])\n\n Stochastic Relative Strength Index (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n fastk_period: 5\n fastd_period: 3\n fastd_matype: 0\n Outputs:\n fastk\n fastd\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI = {"stream_STOCHRSI", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_640stream_STOCHRSI}; +static PyObject *__pyx_pw_5talib_7_ta_lib_641stream_STOCHRSI(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + int __pyx_v_fastk_period; + int __pyx_v_fastd_period; + int __pyx_v_fastd_matype; + #if !CYTHON_METH_FASTCALL + 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("stream_STOCHRSI (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_fastk_period,&__pyx_n_s_fastd_period,&__pyx_n_s_fastd_matype,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastk_period); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_period); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_fastd_matype); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4724, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_STOCHRSI") < 0)) __PYX_ERR(4, 4724, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + if (values[2]) { + __pyx_v_fastk_period = __Pyx_PyInt_As_int(values[2]); if (unlikely((__pyx_v_fastk_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) + } else { + __pyx_v_fastk_period = ((int)((int)-2147483648)); + } + if (values[3]) { + __pyx_v_fastd_period = __Pyx_PyInt_As_int(values[3]); if (unlikely((__pyx_v_fastd_period == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) + } else { + __pyx_v_fastd_period = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_fastd_matype = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_fastd_matype == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4726, __pyx_L3_error) + } else { + __pyx_v_fastd_matype = ((int)((int)0)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_STOCHRSI", 0, 1, 5, __pyx_nargs); __PYX_ERR(4, 4724, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4726, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_640stream_STOCHRSI(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outfastk; + double __pyx_v_outfastd; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + PyObject *__pyx_t_2 = NULL; + PyObject *__pyx_t_3 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_STOCHRSI", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4750 + * double outfastk + * double outfastd + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4750, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4751 + * double outfastd + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outfastk = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4752 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outfastk = NaN + * outfastd = NaN + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4753 + * real_data = real.data + * length = real.shape[0] + * outfastk = NaN # <<<<<<<<<<<<<< + * outfastd = NaN + * retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + */ + __pyx_v_outfastk = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4754 + * length = real.shape[0] + * outfastk = NaN + * outfastd = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHRSI", retCode) + */ + __pyx_v_outfastd = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4755 + * outfastk = NaN + * outfastd = NaN + * retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_STOCHRSI", retCode) + * return outfastk , outfastd + */ + __pyx_v_retCode = TA_STOCHRSI((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_fastk_period, __pyx_v_fastd_period, __pyx_v_fastd_matype, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outfastk), (&__pyx_v_outfastd)); + + /* "talib/_stream.pxi":4756 + * outfastd = NaN + * retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHRSI", retCode) # <<<<<<<<<<<<<< + * return outfastk , outfastd + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_STOCHRSI, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4756, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4757 + * retCode = lib.TA_STOCHRSI( (length) - 1 , (length) - 1 , real_data , timeperiod , fastk_period , fastd_period , fastd_matype , &outbegidx , &outnbelement , &outfastk , &outfastd ) + * _ta_check_success("TA_STOCHRSI", retCode) + * return outfastk , outfastd # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outfastk); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_t_2 = PyFloat_FromDouble(__pyx_v_outfastd); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_1); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1)) __PYX_ERR(4, 4757, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2)) __PYX_ERR(4, 4757, __pyx_L1_error); + __pyx_t_1 = 0; + __pyx_t_2 = 0; + __pyx_r = __pyx_t_3; + __pyx_t_3 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4724 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + */ + + /* 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.stream_STOCHRSI", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4759 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SUB(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_642stream_SUB, " SUB(real0, real1)\n\n Vector Arithmetic Subtraction (Math Operators)\n\n Inputs:\n real0: (any ndarray)\n real1: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_643stream_SUB = {"stream_SUB", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_643stream_SUB, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_642stream_SUB}; +static PyObject *__pyx_pw_5talib_7_ta_lib_643stream_SUB(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_SUB (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real0,&__pyx_n_s_real1,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real0)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real1)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4759, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, 1); __PYX_ERR(4, 4759, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SUB") < 0)) __PYX_ERR(4, 4759, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 2)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + } + __pyx_v_real0 = ((PyArrayObject *)values[0]); + __pyx_v_real1 = ((PyArrayObject *)values[1]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SUB", 1, 2, 2, __pyx_nargs); __PYX_ERR(4, 4759, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real0), __pyx_ptype_5numpy_ndarray, 0, "real0", 0))) __PYX_ERR(4, 4761, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real1), __pyx_ptype_5numpy_ndarray, 0, "real1", 0))) __PYX_ERR(4, 4761, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_642stream_SUB(__pyx_self, __pyx_v_real0, __pyx_v_real1); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_642stream_SUB(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real0, PyArrayObject *__pyx_v_real1) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real0_data; + double *__pyx_v_real1_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SUB", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real0); + __Pyx_INCREF((PyObject *)__pyx_v_real1); + + /* "talib/_stream.pxi":4780 + * int outnbelement + * double outreal + * real0 = check_array(real0) # <<<<<<<<<<<<<< + * real0_data = real0.data + * real1 = check_array(real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4780, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real0, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4781 + * double outreal + * real0 = check_array(real0) + * real0_data = real0.data # <<<<<<<<<<<<<< + * real1 = check_array(real1) + * real1_data = real1.data + */ + __pyx_v_real0_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real0)); + + /* "talib/_stream.pxi":4782 + * real0 = check_array(real0) + * real0_data = real0.data + * real1 = check_array(real1) # <<<<<<<<<<<<<< + * real1_data = real1.data + * length = check_length2(real0, real1) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real1)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4782, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real1, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4783 + * real0_data = real0.data + * real1 = check_array(real1) + * real1_data = real1.data # <<<<<<<<<<<<<< + * length = check_length2(real0, real1) + * outreal = NaN + */ + __pyx_v_real1_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real1)); + + /* "talib/_stream.pxi":4784 + * real1 = check_array(real1) + * real1_data = real1.data + * length = check_length2(real0, real1) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4784, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4785 + * real1_data = real1.data + * length = check_length2(real0, real1) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUB", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4786 + * length = check_length2(real0, real1) + * outreal = NaN + * retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SUB", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SUB((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real0_data, __pyx_v_real1_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4787 + * outreal = NaN + * retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUB", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUB, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4788 + * retCode = lib.TA_SUB( (length) - 1 , (length) - 1 , real0_data , real1_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUB", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4788, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4759 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SUB", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real0); + __Pyx_XDECREF((PyObject *)__pyx_v_real1); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4790 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_644stream_SUM, " SUM(real[, timeperiod=?])\n\n Summation (Math Operators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_645stream_SUM = {"stream_SUM", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_645stream_SUM, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_644stream_SUM}; +static PyObject *__pyx_pw_5talib_7_ta_lib_645stream_SUM(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_SUM (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4790, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4790, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_SUM") < 0)) __PYX_ERR(4, 4790, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4792, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_SUM", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4790, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4792, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_644stream_SUM(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_644stream_SUM(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_SUM", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4811 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4812 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4813 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4814 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUM", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4815 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_SUM", retCode) + * return outreal + */ + __pyx_v_retCode = TA_SUM((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4816 + * outreal = NaN + * retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUM", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_SUM, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4817 + * retCode = lib.TA_SUM( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_SUM", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4817, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4790 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_SUM", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4819 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_T3(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_646stream_T3, " T3(real[, timeperiod=?, vfactor=?])\n\n Triple Exponential Moving Average (T3) (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n vfactor: 0.7\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_647stream_T3 = {"stream_T3", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_647stream_T3, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_646stream_T3}; +static PyObject *__pyx_pw_5talib_7_ta_lib_647stream_T3(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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_vfactor; + #if !CYTHON_METH_FASTCALL + 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("stream_T3 (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_vfactor,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_vfactor); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4819, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_T3") < 0)) __PYX_ERR(4, 4819, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4821, __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(4, 4821, __pyx_L3_error) + } else { + __pyx_v_vfactor = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_T3", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 4819, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4821, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_646stream_T3(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_vfactor); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_646stream_T3(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_vfactor) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_T3", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4841 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4841, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4842 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4843 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4844 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_T3", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4845 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_T3", retCode) + * return outreal + */ + __pyx_v_retCode = TA_T3((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_vfactor, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4846 + * outreal = NaN + * retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_T3", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_T3, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4846, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4847 + * retCode = lib.TA_T3( (length) - 1 , (length) - 1 , real_data , timeperiod , vfactor , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_T3", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4847, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4819 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_T3", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4849 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TAN( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_648stream_TAN, " TAN(real)\n\n Vector Trigonometric Tan (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_649stream_TAN = {"stream_TAN", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_649stream_TAN, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_648stream_TAN}; +static PyObject *__pyx_pw_5talib_7_ta_lib_649stream_TAN(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_TAN (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4849, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TAN") < 0)) __PYX_ERR(4, 4849, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TAN", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4849, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4851, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_648stream_TAN(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_648stream_TAN(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TAN", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4868 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4868, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4869 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4870 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4871 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TAN", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4872 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TAN", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TAN((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4873 + * outreal = NaN + * retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TAN", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TAN, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4873, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4874 + * retCode = lib.TA_TAN( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TAN", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4849 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TAN( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TAN", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TANH( np.ndarray real not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_TANH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_650stream_TANH, " TANH(real)\n\n Vector Trigonometric Tanh (Math Transform)\n\n Inputs:\n real: (any ndarray)\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_651stream_TANH = {"stream_TANH", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_651stream_TANH, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_650stream_TANH}; +static PyObject *__pyx_pw_5talib_7_ta_lib_651stream_TANH(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_TANH (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4876, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TANH") < 0)) __PYX_ERR(4, 4876, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 1)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + } + __pyx_v_real = ((PyArrayObject *)values[0]); + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TANH", 1, 1, 1, __pyx_nargs); __PYX_ERR(4, 4876, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4878, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_650stream_TANH(__pyx_self, __pyx_v_real); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_650stream_TANH(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TANH", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4895 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4895, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4896 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4897 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4898 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TANH", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4899 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TANH", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TANH((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4900 + * outreal = NaN + * retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TANH", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TANH, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4900, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4901 + * retCode = lib.TA_TANH( (length) - 1 , (length) - 1 , real_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TANH", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TANH( np.ndarray real not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TANH", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_652stream_TEMA, " TEMA(real[, timeperiod=?])\n\n Triple Exponential Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_653stream_TEMA = {"stream_TEMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_653stream_TEMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_652stream_TEMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_653stream_TEMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_TEMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4903, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4903, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TEMA") < 0)) __PYX_ERR(4, 4903, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4905, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TEMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4903, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4905, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_652stream_TEMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_652stream_TEMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TEMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4924 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4924, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4925 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4926 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4927 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TEMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4928 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TEMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TEMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4929 + * outreal = NaN + * retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TEMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TEMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4929, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4930 + * retCode = lib.TA_TEMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TEMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TEMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4932 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_TRANGE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_654stream_TRANGE, " TRANGE(high, low, close)\n\n True Range (Volatility Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_655stream_TRANGE = {"stream_TRANGE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_655stream_TRANGE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_654stream_TRANGE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_655stream_TRANGE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_TRANGE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 1); __PYX_ERR(4, 4932, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4932, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_TRANGE", 1, 3, 3, 2); __PYX_ERR(4, 4932, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRANGE") < 0)) __PYX_ERR(4, 4932, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + } + __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("stream_TRANGE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 4932, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 4934, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_654stream_TRANGE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_654stream_TRANGE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TRANGE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":4953 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4954 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":4955 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4955, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4956 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":4957 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4957, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4958 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":4959 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 4959, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":4960 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRANGE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4961 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRANGE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRANGE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4962 + * outreal = NaN + * retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRANGE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRANGE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4963 + * retCode = lib.TA_TRANGE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRANGE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4963, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4932 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TRANGE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":4965 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_656stream_TRIMA, " TRIMA(real[, timeperiod=?])\n\n Triangular Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_657stream_TRIMA = {"stream_TRIMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_657stream_TRIMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_656stream_TRIMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_657stream_TRIMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_TRIMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4965, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRIMA") < 0)) __PYX_ERR(4, 4965, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4967, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TRIMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4965, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4967, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_656stream_TRIMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_656stream_TRIMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TRIMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":4986 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4987 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":4988 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":4989 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":4990 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRIMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRIMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":4991 + * outreal = NaN + * retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4991, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":4992 + * retCode = lib.TA_TRIMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 4992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4965 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TRIMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":4994 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_TRIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_658stream_TRIX, " TRIX(real[, timeperiod=?])\n\n 1-day Rate-Of-Change (ROC) of a Triple Smooth EMA (Momentum Indicators)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_659stream_TRIX = {"stream_TRIX", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_659stream_TRIX, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_658stream_TRIX}; +static PyObject *__pyx_pw_5talib_7_ta_lib_659stream_TRIX(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_TRIX (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4994, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 4994, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TRIX") < 0)) __PYX_ERR(4, 4994, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 4996, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TRIX", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 4994, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 4996, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_658stream_TRIX(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_658stream_TRIX(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TRIX", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":5015 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5015, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5016 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":5017 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":5018 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIX", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5019 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TRIX", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TRIX((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5020 + * outreal = NaN + * retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIX", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TRIX, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5020, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5021 + * retCode = lib.TA_TRIX( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TRIX", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5021, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":4994 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TRIX", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":5023 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TSF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_660stream_TSF, " TSF(real[, timeperiod=?])\n\n Time Series Forecast (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_661stream_TSF = {"stream_TSF", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_661stream_TSF, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_660stream_TSF}; +static PyObject *__pyx_pw_5talib_7_ta_lib_661stream_TSF(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_TSF (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5023, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5023, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TSF") < 0)) __PYX_ERR(4, 5023, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5025, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_TSF", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5023, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5025, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_660stream_TSF(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_660stream_TSF(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TSF", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":5044 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5044, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5045 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":5046 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":5047 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TSF", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5048 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TSF", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TSF((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5049 + * outreal = NaN + * retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TSF", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TSF, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5049, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5050 + * retCode = lib.TA_TSF( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TSF", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5023 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TSF", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":5052 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE, " TYPPRICE(high, low, close)\n\n Typical Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE = {"stream_TYPPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_662stream_TYPPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_663stream_TYPPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_TYPPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 1); __PYX_ERR(4, 5052, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5052, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_TYPPRICE", 1, 3, 3, 2); __PYX_ERR(4, 5052, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_TYPPRICE") < 0)) __PYX_ERR(4, 5052, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + } + __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("stream_TYPPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5052, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5054, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_662stream_TYPPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_TYPPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":5073 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5073, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5074 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":5075 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5075, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5076 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":5077 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5077, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5078 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":5079 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 5079, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":5080 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TYPPRICE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5081 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_TYPPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_TYPPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5082 + * outreal = NaN + * retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TYPPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_TYPPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5083 + * retCode = lib.TA_TYPPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_TYPPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5052 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_TYPPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":5085 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_664stream_ULTOSC, " ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?])\n\n Ultimate Oscillator (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod1: 7\n timeperiod2: 14\n timeperiod3: 28\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC = {"stream_ULTOSC", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_664stream_ULTOSC}; +static PyObject *__pyx_pw_5talib_7_ta_lib_665stream_ULTOSC(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_ULTOSC (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod1,&__pyx_n_s_timeperiod2,&__pyx_n_s_timeperiod3,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 1); __PYX_ERR(4, 5085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, 2); __PYX_ERR(4, 5085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod1); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 4: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod2); + if (value) { values[4] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 5: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod3); + if (value) { values[5] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5085, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_ULTOSC") < 0)) __PYX_ERR(4, 5085, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 6: values[5] = __Pyx_Arg_FASTCALL(__pyx_args, 5); + CYTHON_FALLTHROUGH; + case 5: values[4] = __Pyx_Arg_FASTCALL(__pyx_args, 4); + CYTHON_FALLTHROUGH; + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod1 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) + } else { + __pyx_v_timeperiod1 = ((int)((int)-2147483648)); + } + if (values[4]) { + __pyx_v_timeperiod2 = __Pyx_PyInt_As_int(values[4]); if (unlikely((__pyx_v_timeperiod2 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) + } else { + __pyx_v_timeperiod2 = ((int)((int)-2147483648)); + } + if (values[5]) { + __pyx_v_timeperiod3 = __Pyx_PyInt_As_int(values[5]); if (unlikely((__pyx_v_timeperiod3 == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5087, __pyx_L3_error) + } else { + __pyx_v_timeperiod3 = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_ULTOSC", 0, 3, 6, __pyx_nargs); __PYX_ERR(4, 5085, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5087, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_664stream_ULTOSC(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_ULTOSC", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":5110 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5110, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5111 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":5112 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5113 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":5114 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5115 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":5116 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 5116, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":5117 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ULTOSC", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5118 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_ULTOSC", retCode) + * return outreal + */ + __pyx_v_retCode = TA_ULTOSC((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod1, __pyx_v_timeperiod2, __pyx_v_timeperiod3, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5119 + * outreal = NaN + * retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ULTOSC", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_ULTOSC, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5120 + * retCode = lib.TA_ULTOSC( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod1 , timeperiod2 , timeperiod3 , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_ULTOSC", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5085 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_ULTOSC", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":5122 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_666stream_VAR, " VAR(real[, timeperiod=?, nbdev=?])\n\n Variance (Statistic Functions)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 5\n nbdev: 1.0\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_667stream_VAR = {"stream_VAR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_667stream_VAR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_666stream_VAR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_667stream_VAR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_VAR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,&__pyx_n_s_nbdev,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_nbdev); + if (value) { values[2] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5122, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_VAR") < 0)) __PYX_ERR(4, 5122, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5124, __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(4, 5124, __pyx_L3_error) + } else { + __pyx_v_nbdev = ((double)((double)-4e37)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_VAR", 0, 1, 3, __pyx_nargs); __PYX_ERR(4, 5122, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5124, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_666stream_VAR(__pyx_self, __pyx_v_real, __pyx_v_timeperiod, __pyx_v_nbdev); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_666stream_VAR(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod, double __pyx_v_nbdev) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_VAR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":5144 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5145 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":5146 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":5147 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_VAR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5148 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_VAR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_VAR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, __pyx_v_nbdev, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5149 + * outreal = NaN + * retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_VAR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_VAR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5149, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5150 + * retCode = lib.TA_VAR( (length) - 1 , (length) - 1 , real_data , timeperiod , nbdev , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_VAR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5122 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_VAR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +/* "talib/_stream.pxi":5152 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE, " WCLPRICE(high, low, close)\n\n Weighted Close Price (Price Transform)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE = {"stream_WCLPRICE", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_668stream_WCLPRICE}; +static PyObject *__pyx_pw_5talib_7_ta_lib_669stream_WCLPRICE(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_WCLPRICE (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 1); __PYX_ERR(4, 5152, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5152, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_WCLPRICE", 1, 3, 3, 2); __PYX_ERR(4, 5152, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WCLPRICE") < 0)) __PYX_ERR(4, 5152, __pyx_L3_error) + } + } else if (unlikely(__pyx_nargs != 3)) { + goto __pyx_L5_argtuple_error; + } else { + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + } + __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("stream_WCLPRICE", 1, 3, 3, __pyx_nargs); __PYX_ERR(4, 5152, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5154, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(__pyx_self, __pyx_v_high, __pyx_v_low, __pyx_v_close); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_668stream_WCLPRICE(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_high, PyArrayObject *__pyx_v_low, PyArrayObject *__pyx_v_close) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_WCLPRICE", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":5173 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5173, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5174 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":5175 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5176 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":5177 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5178 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":5179 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 5179, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":5180 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WCLPRICE", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5181 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WCLPRICE", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WCLPRICE((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5182 + * outreal = NaN + * retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WCLPRICE", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WCLPRICE, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5183 + * retCode = lib.TA_WCLPRICE( (length) - 1 , (length) - 1 , high_data , low_data , close_data , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WCLPRICE", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5183, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5152 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_WCLPRICE", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":5185 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_670stream_WILLR, " WILLR(high, low, close[, timeperiod=?])\n\n Williams' %R (Momentum Indicators)\n\n Inputs:\n prices: ['high', 'low', 'close']\n Parameters:\n timeperiod: 14\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_671stream_WILLR = {"stream_WILLR", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_671stream_WILLR, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_670stream_WILLR}; +static PyObject *__pyx_pw_5talib_7_ta_lib_671stream_WILLR(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +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; + #if !CYTHON_METH_FASTCALL + 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("stream_WILLR (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_high,&__pyx_n_s_low,&__pyx_n_s_close,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + CYTHON_FALLTHROUGH; + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_high)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (likely((values[1] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_low)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[1]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 1); __PYX_ERR(4, 5185, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 2: + if (likely((values[2] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_close)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[2]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) + else { + __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, 2); __PYX_ERR(4, 5185, __pyx_L3_error) + } + CYTHON_FALLTHROUGH; + case 3: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[3] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5185, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WILLR") < 0)) __PYX_ERR(4, 5185, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 4: values[3] = __Pyx_Arg_FASTCALL(__pyx_args, 3); + CYTHON_FALLTHROUGH; + case 3: values[2] = __Pyx_Arg_FASTCALL(__pyx_args, 2); + values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + 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_PyInt_As_int(values[3]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5187, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WILLR", 0, 3, 4, __pyx_nargs); __PYX_ERR(4, 5185, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_high), __pyx_ptype_5numpy_ndarray, 0, "high", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_low), __pyx_ptype_5numpy_ndarray, 0, "low", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_close), __pyx_ptype_5numpy_ndarray, 0, "close", 0))) __PYX_ERR(4, 5187, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_670stream_WILLR(__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; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_670stream_WILLR(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; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_high_data; + double *__pyx_v_low_data; + double *__pyx_v_close_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + npy_intp __pyx_t_2; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_WILLR", 0); + __Pyx_INCREF((PyObject *)__pyx_v_high); + __Pyx_INCREF((PyObject *)__pyx_v_low); + __Pyx_INCREF((PyObject *)__pyx_v_close); + + /* "talib/_stream.pxi":5208 + * int outnbelement + * double outreal + * high = check_array(high) # <<<<<<<<<<<<<< + * high_data = high.data + * low = check_array(low) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_high)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_high, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5209 + * double outreal + * high = check_array(high) + * high_data = high.data # <<<<<<<<<<<<<< + * low = check_array(low) + * low_data = low.data + */ + __pyx_v_high_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_high)); + + /* "talib/_stream.pxi":5210 + * high = check_array(high) + * high_data = high.data + * low = check_array(low) # <<<<<<<<<<<<<< + * low_data = low.data + * close = check_array(close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_low)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_low, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5211 + * high_data = high.data + * low = check_array(low) + * low_data = low.data # <<<<<<<<<<<<<< + * close = check_array(close) + * close_data = close.data + */ + __pyx_v_low_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_low)); + + /* "talib/_stream.pxi":5212 + * low = check_array(low) + * low_data = low.data + * close = check_array(close) # <<<<<<<<<<<<<< + * close_data = close.data + * length = check_length3(high, low, close) + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_close)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_close, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5213 + * low_data = low.data + * close = check_array(close) + * close_data = close.data # <<<<<<<<<<<<<< + * length = check_length3(high, low, close) + * outreal = NaN + */ + __pyx_v_close_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_close)); + + /* "talib/_stream.pxi":5214 + * close = check_array(close) + * close_data = close.data + * length = check_length3(high, low, close) # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __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(4, 5214, __pyx_L1_error) + __pyx_v_length = __pyx_t_2; + + /* "talib/_stream.pxi":5215 + * close_data = close.data + * length = check_length3(high, low, close) + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WILLR", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5216 + * length = check_length3(high, low, close) + * outreal = NaN + * retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WILLR", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WILLR((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_high_data, __pyx_v_low_data, __pyx_v_close_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5217 + * outreal = NaN + * retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WILLR", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WILLR, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5217, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5218 + * retCode = lib.TA_WILLR( (length) - 1 , (length) - 1 , high_data , low_data , close_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WILLR", retCode) + * return outreal # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5218, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5185 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_WILLR", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __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; +} + +/* "talib/_stream.pxi":5220 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + +/* Python wrapper */ +static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +); /*proto*/ +PyDoc_STRVAR(__pyx_doc_5talib_7_ta_lib_672stream_WMA, " WMA(real[, timeperiod=?])\n\n Weighted Moving Average (Overlap Studies)\n\n Inputs:\n real: (any ndarray)\n Parameters:\n timeperiod: 30\n Outputs:\n real\n "); +static PyMethodDef __pyx_mdef_5talib_7_ta_lib_673stream_WMA = {"stream_WMA", (PyCFunction)(void*)(__Pyx_PyCFunction_FastCallWithKeywords)__pyx_pw_5talib_7_ta_lib_673stream_WMA, __Pyx_METH_FASTCALL|METH_KEYWORDS, __pyx_doc_5talib_7_ta_lib_672stream_WMA}; +static PyObject *__pyx_pw_5talib_7_ta_lib_673stream_WMA(PyObject *__pyx_self, +#if CYTHON_METH_FASTCALL +PyObject *const *__pyx_args, Py_ssize_t __pyx_nargs, PyObject *__pyx_kwds +#else +PyObject *__pyx_args, PyObject *__pyx_kwds +#endif +) { + PyArrayObject *__pyx_v_real = 0; + int __pyx_v_timeperiod; + #if !CYTHON_METH_FASTCALL + 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("stream_WMA (wrapper)", 0); + #if !CYTHON_METH_FASTCALL + #if CYTHON_ASSUME_SAFE_MACROS + __pyx_nargs = PyTuple_GET_SIZE(__pyx_args); + #else + __pyx_nargs = PyTuple_Size(__pyx_args); if (unlikely(__pyx_nargs < 0)) return NULL; + #endif + #endif + __pyx_kwvalues = __Pyx_KwValues_FASTCALL(__pyx_args, __pyx_nargs); + { + PyObject **__pyx_pyargnames[] = {&__pyx_n_s_real,&__pyx_n_s_timeperiod,0}; + if (__pyx_kwds) { + Py_ssize_t kw_args; + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + CYTHON_FALLTHROUGH; + case 0: break; + default: goto __pyx_L5_argtuple_error; + } + kw_args = __Pyx_NumKwargs_FASTCALL(__pyx_kwds); + switch (__pyx_nargs) { + case 0: + if (likely((values[0] = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_real)) != 0)) { + (void)__Pyx_Arg_NewRef_FASTCALL(values[0]); + kw_args--; + } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5220, __pyx_L3_error) + else goto __pyx_L5_argtuple_error; + CYTHON_FALLTHROUGH; + case 1: + if (kw_args > 0) { + PyObject* value = __Pyx_GetKwValue_FASTCALL(__pyx_kwds, __pyx_kwvalues, __pyx_n_s_timeperiod); + if (value) { values[1] = __Pyx_Arg_NewRef_FASTCALL(value); kw_args--; } + else if (unlikely(PyErr_Occurred())) __PYX_ERR(4, 5220, __pyx_L3_error) + } + } + if (unlikely(kw_args > 0)) { + const Py_ssize_t kwd_pos_args = __pyx_nargs; + if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_kwvalues, __pyx_pyargnames, 0, values + 0, kwd_pos_args, "stream_WMA") < 0)) __PYX_ERR(4, 5220, __pyx_L3_error) + } + } else { + switch (__pyx_nargs) { + case 2: values[1] = __Pyx_Arg_FASTCALL(__pyx_args, 1); + CYTHON_FALLTHROUGH; + case 1: values[0] = __Pyx_Arg_FASTCALL(__pyx_args, 0); + break; + default: goto __pyx_L5_argtuple_error; + } + } + __pyx_v_real = ((PyArrayObject *)values[0]); + if (values[1]) { + __pyx_v_timeperiod = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_timeperiod == (int)-1) && PyErr_Occurred())) __PYX_ERR(4, 5222, __pyx_L3_error) + } else { + __pyx_v_timeperiod = ((int)((int)-2147483648)); + } + } + goto __pyx_L6_skip; + __pyx_L5_argtuple_error:; + __Pyx_RaiseArgtupleInvalid("stream_WMA", 0, 1, 2, __pyx_nargs); __PYX_ERR(4, 5220, __pyx_L3_error) + __pyx_L6_skip:; + goto __pyx_L4_argument_unpacking_done; + __pyx_L3_error:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __Pyx_RefNannyFinishContext(); + return NULL; + __pyx_L4_argument_unpacking_done:; + if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_real), __pyx_ptype_5numpy_ndarray, 0, "real", 0))) __PYX_ERR(4, 5222, __pyx_L1_error) + __pyx_r = __pyx_pf_5talib_7_ta_lib_672stream_WMA(__pyx_self, __pyx_v_real, __pyx_v_timeperiod); + + /* function exit code */ + goto __pyx_L0; + __pyx_L1_error:; + __pyx_r = NULL; + __pyx_L0:; + { + Py_ssize_t __pyx_temp; + for (__pyx_temp=0; __pyx_temp < (Py_ssize_t)(sizeof(values)/sizeof(values[0])); ++__pyx_temp) { + __Pyx_Arg_XDECREF_FASTCALL(values[__pyx_temp]); + } + } + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyObject *__pyx_pf_5talib_7_ta_lib_672stream_WMA(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_real, int __pyx_v_timeperiod) { + npy_intp __pyx_v_length; + TA_RetCode __pyx_v_retCode; + double *__pyx_v_real_data; + int __pyx_v_outbegidx; + int __pyx_v_outnbelement; + double __pyx_v_outreal; + PyObject *__pyx_r = NULL; + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("stream_WMA", 0); + __Pyx_INCREF((PyObject *)__pyx_v_real); + + /* "talib/_stream.pxi":5241 + * int outnbelement + * double outreal + * real = check_array(real) # <<<<<<<<<<<<<< + * real_data = real.data + * length = real.shape[0] + */ + __pyx_t_1 = ((PyObject *)__pyx_f_5talib_7_ta_lib_check_array(__pyx_v_real)); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF_SET(__pyx_v_real, ((PyArrayObject *)__pyx_t_1)); + __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5242 + * double outreal + * real = check_array(real) + * real_data = real.data # <<<<<<<<<<<<<< + * length = real.shape[0] + * outreal = NaN + */ + __pyx_v_real_data = ((double *)__pyx_f_5numpy_7ndarray_4data_data(__pyx_v_real)); + + /* "talib/_stream.pxi":5243 + * real = check_array(real) + * real_data = real.data + * length = real.shape[0] # <<<<<<<<<<<<<< + * outreal = NaN + * retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + */ + __pyx_v_length = (__pyx_f_5numpy_7ndarray_5shape_shape(__pyx_v_real)[0]); + + /* "talib/_stream.pxi":5244 + * real_data = real.data + * length = real.shape[0] + * outreal = NaN # <<<<<<<<<<<<<< + * retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WMA", retCode) + */ + __pyx_v_outreal = __pyx_v_5talib_7_ta_lib_NaN; + + /* "talib/_stream.pxi":5245 + * length = real.shape[0] + * outreal = NaN + * retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) # <<<<<<<<<<<<<< + * _ta_check_success("TA_WMA", retCode) + * return outreal + */ + __pyx_v_retCode = TA_WMA((((int)__pyx_v_length) - 1), (((int)__pyx_v_length) - 1), __pyx_v_real_data, __pyx_v_timeperiod, (&__pyx_v_outbegidx), (&__pyx_v_outnbelement), (&__pyx_v_outreal)); + + /* "talib/_stream.pxi":5246 + * outreal = NaN + * retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WMA", retCode) # <<<<<<<<<<<<<< + * return outreal + * + */ + __pyx_t_1 = __pyx_f_5talib_7_ta_lib__ta_check_success(__pyx_n_s_TA_WMA, __pyx_v_retCode, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + + /* "talib/_stream.pxi":5247 + * retCode = lib.TA_WMA( (length) - 1 , (length) - 1 , real_data , timeperiod , &outbegidx , &outnbelement , &outreal ) + * _ta_check_success("TA_WMA", retCode) + * return outreal # <<<<<<<<<<<<<< + * + */ + __Pyx_XDECREF(__pyx_r); + __pyx_t_1 = PyFloat_FromDouble(__pyx_v_outreal); if (unlikely(!__pyx_t_1)) __PYX_ERR(4, 5247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_r = __pyx_t_1; + __pyx_t_1 = 0; + goto __pyx_L0; + + /* "talib/_stream.pxi":5220 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + + /* function exit code */ + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_AddTraceback("talib._ta_lib.stream_WMA", __pyx_clineno, __pyx_lineno, __pyx_filename); + __pyx_r = NULL; + __pyx_L0:; + __Pyx_XDECREF((PyObject *)__pyx_v_real); + __Pyx_XGIVEREF(__pyx_r); + __Pyx_RefNannyFinishContext(); + return __pyx_r; +} + +static PyMethodDef __pyx_methods[] = { + {0, 0, 0, 0} +}; +#ifndef CYTHON_SMALL_CODE +#if defined(__clang__) + #define CYTHON_SMALL_CODE +#elif defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) + #define CYTHON_SMALL_CODE __attribute__((cold)) +#else + #define CYTHON_SMALL_CODE +#endif +#endif +/* #### Code section: pystring_table ### */ + +static int __Pyx_CreateStringTabAndInitStrings(void) { + __Pyx_StringTabEntry __pyx_string_tab[] = { + {&__pyx_kp_s_3, __pyx_k_3, sizeof(__pyx_k_3), 0, 0, 1, 0}, + {&__pyx_n_s_ACOS, __pyx_k_ACOS, sizeof(__pyx_k_ACOS), 0, 0, 1, 1}, + {&__pyx_n_s_AD, __pyx_k_AD, sizeof(__pyx_k_AD), 0, 0, 1, 1}, + {&__pyx_n_s_ADD, __pyx_k_ADD, sizeof(__pyx_k_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_ADOSC, __pyx_k_ADOSC, sizeof(__pyx_k_ADOSC), 0, 0, 1, 1}, + {&__pyx_n_s_ADX, __pyx_k_ADX, sizeof(__pyx_k_ADX), 0, 0, 1, 1}, + {&__pyx_n_s_ADXR, __pyx_k_ADXR, sizeof(__pyx_k_ADXR), 0, 0, 1, 1}, + {&__pyx_n_s_ALL, __pyx_k_ALL, sizeof(__pyx_k_ALL), 0, 0, 1, 1}, + {&__pyx_n_s_APO, __pyx_k_APO, sizeof(__pyx_k_APO), 0, 0, 1, 1}, + {&__pyx_n_s_AROON, __pyx_k_AROON, sizeof(__pyx_k_AROON), 0, 0, 1, 1}, + {&__pyx_n_s_AROONOSC, __pyx_k_AROONOSC, sizeof(__pyx_k_AROONOSC), 0, 0, 1, 1}, + {&__pyx_n_s_ARRAY_TYPES, __pyx_k_ARRAY_TYPES, sizeof(__pyx_k_ARRAY_TYPES), 0, 0, 1, 1}, + {&__pyx_n_s_ASIN, __pyx_k_ASIN, sizeof(__pyx_k_ASIN), 0, 0, 1, 1}, + {&__pyx_n_s_ATAN, __pyx_k_ATAN, sizeof(__pyx_k_ATAN), 0, 0, 1, 1}, + {&__pyx_n_s_ATR, __pyx_k_ATR, sizeof(__pyx_k_ATR), 0, 0, 1, 1}, + {&__pyx_n_s_AVGPRICE, __pyx_k_AVGPRICE, sizeof(__pyx_k_AVGPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_AllCandleSettings, __pyx_k_AllCandleSettings, sizeof(__pyx_k_AllCandleSettings), 0, 0, 1, 1}, + {&__pyx_kp_s_Allocation_Error_TA_ALLOC_ERR, __pyx_k_Allocation_Error_TA_ALLOC_ERR, sizeof(__pyx_k_Allocation_Error_TA_ALLOC_ERR), 0, 0, 1, 0}, + {&__pyx_n_s_BBANDS, __pyx_k_BBANDS, sizeof(__pyx_k_BBANDS), 0, 0, 1, 1}, + {&__pyx_n_s_BETA, __pyx_k_BETA, sizeof(__pyx_k_BETA), 0, 0, 1, 1}, + {&__pyx_n_s_BOP, __pyx_k_BOP, sizeof(__pyx_k_BOP), 0, 0, 1, 1}, + {&__pyx_kp_s_Bad_Object_TA_BAD_OBJECT, __pyx_k_Bad_Object_TA_BAD_OBJECT, sizeof(__pyx_k_Bad_Object_TA_BAD_OBJECT), 0, 0, 1, 0}, + {&__pyx_kp_s_Bad_Parameter_TA_BAD_PARAM, __pyx_k_Bad_Parameter_TA_BAD_PARAM, sizeof(__pyx_k_Bad_Parameter_TA_BAD_PARAM), 0, 0, 1, 0}, + {&__pyx_n_s_BodyDoji, __pyx_k_BodyDoji, sizeof(__pyx_k_BodyDoji), 0, 0, 1, 1}, + {&__pyx_n_s_BodyLong, __pyx_k_BodyLong, sizeof(__pyx_k_BodyLong), 0, 0, 1, 1}, + {&__pyx_n_s_BodyShort, __pyx_k_BodyShort, sizeof(__pyx_k_BodyShort), 0, 0, 1, 1}, + {&__pyx_n_s_BodyVeryLong, __pyx_k_BodyVeryLong, sizeof(__pyx_k_BodyVeryLong), 0, 0, 1, 1}, + {&__pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut, __pyx_k_Bull_Bear_Pattern_Bearish_0_Neut, sizeof(__pyx_k_Bull_Bear_Pattern_Bearish_0_Neut), 0, 0, 1, 0}, + {&__pyx_n_s_CCI, __pyx_k_CCI, sizeof(__pyx_k_CCI), 0, 0, 1, 1}, + {&__pyx_n_s_CDL2CROWS, __pyx_k_CDL2CROWS, sizeof(__pyx_k_CDL2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3BLACKCROWS, __pyx_k_CDL3BLACKCROWS, sizeof(__pyx_k_CDL3BLACKCROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3INSIDE, __pyx_k_CDL3INSIDE, sizeof(__pyx_k_CDL3INSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3LINESTRIKE, __pyx_k_CDL3LINESTRIKE, sizeof(__pyx_k_CDL3LINESTRIKE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3OUTSIDE, __pyx_k_CDL3OUTSIDE, sizeof(__pyx_k_CDL3OUTSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3STARSINSOUTH, __pyx_k_CDL3STARSINSOUTH, sizeof(__pyx_k_CDL3STARSINSOUTH), 0, 0, 1, 1}, + {&__pyx_n_s_CDL3WHITESOLDIERS, __pyx_k_CDL3WHITESOLDIERS, sizeof(__pyx_k_CDL3WHITESOLDIERS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLABANDONEDBABY, __pyx_k_CDLABANDONEDBABY, sizeof(__pyx_k_CDLABANDONEDBABY), 0, 0, 1, 1}, + {&__pyx_n_s_CDLADVANCEBLOCK, __pyx_k_CDLADVANCEBLOCK, sizeof(__pyx_k_CDLADVANCEBLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLBELTHOLD, __pyx_k_CDLBELTHOLD, sizeof(__pyx_k_CDLBELTHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLBREAKAWAY, __pyx_k_CDLBREAKAWAY, sizeof(__pyx_k_CDLBREAKAWAY), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_k_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCONCEALBABYSWALL, __pyx_k_CDLCONCEALBABYSWALL, sizeof(__pyx_k_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, + {&__pyx_n_s_CDLCOUNTERATTACK, __pyx_k_CDLCOUNTERATTACK, sizeof(__pyx_k_CDLCOUNTERATTACK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDARKCLOUDCOVER, __pyx_k_CDLDARKCLOUDCOVER, sizeof(__pyx_k_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDOJI, __pyx_k_CDLDOJI, sizeof(__pyx_k_CDLDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDOJISTAR, __pyx_k_CDLDOJISTAR, sizeof(__pyx_k_CDLDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLDRAGONFLYDOJI, __pyx_k_CDLDRAGONFLYDOJI, sizeof(__pyx_k_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLENGULFING, __pyx_k_CDLENGULFING, sizeof(__pyx_k_CDLENGULFING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLEVENINGDOJISTAR, __pyx_k_CDLEVENINGDOJISTAR, sizeof(__pyx_k_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLEVENINGSTAR, __pyx_k_CDLEVENINGSTAR, sizeof(__pyx_k_CDLEVENINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_k_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLGRAVESTONEDOJI, __pyx_k_CDLGRAVESTONEDOJI, sizeof(__pyx_k_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHAMMER, __pyx_k_CDLHAMMER, sizeof(__pyx_k_CDLHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHANGINGMAN, __pyx_k_CDLHANGINGMAN, sizeof(__pyx_k_CDLHANGINGMAN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHARAMI, __pyx_k_CDLHARAMI, sizeof(__pyx_k_CDLHARAMI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHARAMICROSS, __pyx_k_CDLHARAMICROSS, sizeof(__pyx_k_CDLHARAMICROSS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIGHWAVE, __pyx_k_CDLHIGHWAVE, sizeof(__pyx_k_CDLHIGHWAVE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIKKAKE, __pyx_k_CDLHIKKAKE, sizeof(__pyx_k_CDLHIKKAKE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHIKKAKEMOD, __pyx_k_CDLHIKKAKEMOD, sizeof(__pyx_k_CDLHIKKAKEMOD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLHOMINGPIGEON, __pyx_k_CDLHOMINGPIGEON, sizeof(__pyx_k_CDLHOMINGPIGEON), 0, 0, 1, 1}, + {&__pyx_n_s_CDLIDENTICAL3CROWS, __pyx_k_CDLIDENTICAL3CROWS, sizeof(__pyx_k_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLINNECK, __pyx_k_CDLINNECK, sizeof(__pyx_k_CDLINNECK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLINVERTEDHAMMER, __pyx_k_CDLINVERTEDHAMMER, sizeof(__pyx_k_CDLINVERTEDHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLKICKING, __pyx_k_CDLKICKING, sizeof(__pyx_k_CDLKICKING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLKICKINGBYLENGTH, __pyx_k_CDLKICKINGBYLENGTH, sizeof(__pyx_k_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLADDERBOTTOM, __pyx_k_CDLLADDERBOTTOM, sizeof(__pyx_k_CDLLADDERBOTTOM), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_k_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLLONGLINE, __pyx_k_CDLLONGLINE, sizeof(__pyx_k_CDLLONGLINE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMARUBOZU, __pyx_k_CDLMARUBOZU, sizeof(__pyx_k_CDLMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMATCHINGLOW, __pyx_k_CDLMATCHINGLOW, sizeof(__pyx_k_CDLMATCHINGLOW), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMATHOLD, __pyx_k_CDLMATHOLD, sizeof(__pyx_k_CDLMATHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMORNINGDOJISTAR, __pyx_k_CDLMORNINGDOJISTAR, sizeof(__pyx_k_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLMORNINGSTAR, __pyx_k_CDLMORNINGSTAR, sizeof(__pyx_k_CDLMORNINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLONNECK, __pyx_k_CDLONNECK, sizeof(__pyx_k_CDLONNECK), 0, 0, 1, 1}, + {&__pyx_n_s_CDLPIERCING, __pyx_k_CDLPIERCING, sizeof(__pyx_k_CDLPIERCING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLRICKSHAWMAN, __pyx_k_CDLRICKSHAWMAN, sizeof(__pyx_k_CDLRICKSHAWMAN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLRISEFALL3METHODS, __pyx_k_CDLRISEFALL3METHODS, sizeof(__pyx_k_CDLRISEFALL3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSEPARATINGLINES, __pyx_k_CDLSEPARATINGLINES, sizeof(__pyx_k_CDLSEPARATINGLINES), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSHOOTINGSTAR, __pyx_k_CDLSHOOTINGSTAR, sizeof(__pyx_k_CDLSHOOTINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSHORTLINE, __pyx_k_CDLSHORTLINE, sizeof(__pyx_k_CDLSHORTLINE), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSPINNINGTOP, __pyx_k_CDLSPINNINGTOP, sizeof(__pyx_k_CDLSPINNINGTOP), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSTALLEDPATTERN, __pyx_k_CDLSTALLEDPATTERN, sizeof(__pyx_k_CDLSTALLEDPATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_CDLSTICKSANDWICH, __pyx_k_CDLSTICKSANDWICH, sizeof(__pyx_k_CDLSTICKSANDWICH), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTAKURI, __pyx_k_CDLTAKURI, sizeof(__pyx_k_CDLTAKURI), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTASUKIGAP, __pyx_k_CDLTASUKIGAP, sizeof(__pyx_k_CDLTASUKIGAP), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTHRUSTING, __pyx_k_CDLTHRUSTING, sizeof(__pyx_k_CDLTHRUSTING), 0, 0, 1, 1}, + {&__pyx_n_s_CDLTRISTAR, __pyx_k_CDLTRISTAR, sizeof(__pyx_k_CDLTRISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_CDLUNIQUE3RIVER, __pyx_k_CDLUNIQUE3RIVER, sizeof(__pyx_k_CDLUNIQUE3RIVER), 0, 0, 1, 1}, + {&__pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_k_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_k_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_CEIL, __pyx_k_CEIL, sizeof(__pyx_k_CEIL), 0, 0, 1, 1}, + {&__pyx_n_s_CMO, __pyx_k_CMO, sizeof(__pyx_k_CMO), 0, 0, 1, 1}, + {&__pyx_n_s_CORREL, __pyx_k_CORREL, sizeof(__pyx_k_CORREL), 0, 0, 1, 1}, + {&__pyx_n_s_COS, __pyx_k_COS, sizeof(__pyx_k_COS), 0, 0, 1, 1}, + {&__pyx_n_s_COSH, __pyx_k_COSH, sizeof(__pyx_k_COSH), 0, 0, 1, 1}, + {&__pyx_n_s_CandleSettingType, __pyx_k_CandleSettingType, sizeof(__pyx_k_CandleSettingType), 0, 0, 1, 1}, + {&__pyx_n_s_DEMA, __pyx_k_DEMA, sizeof(__pyx_k_DEMA), 0, 0, 1, 1}, + {&__pyx_n_s_DIV, __pyx_k_DIV, sizeof(__pyx_k_DIV), 0, 0, 1, 1}, + {&__pyx_n_s_DX, __pyx_k_DX, sizeof(__pyx_k_DX), 0, 0, 1, 1}, + {&__pyx_kp_s_Dashed_Line, __pyx_k_Dashed_Line, sizeof(__pyx_k_Dashed_Line), 0, 0, 1, 0}, + {&__pyx_n_s_DataFrame, __pyx_k_DataFrame, sizeof(__pyx_k_DataFrame), 0, 0, 1, 1}, + {&__pyx_n_s_Dot, __pyx_k_Dot, sizeof(__pyx_k_Dot), 0, 0, 1, 1}, + {&__pyx_kp_s_Dotted_Line, __pyx_k_Dotted_Line, sizeof(__pyx_k_Dotted_Line), 0, 0, 1, 0}, + {&__pyx_kp_s_Double_Exponential_Moving_Averag, __pyx_k_Double_Exponential_Moving_Averag, sizeof(__pyx_k_Double_Exponential_Moving_Averag), 0, 0, 1, 0}, + {&__pyx_n_s_EMA, __pyx_k_EMA, sizeof(__pyx_k_EMA), 0, 0, 1, 1}, + {&__pyx_n_s_EXP, __pyx_k_EXP, sizeof(__pyx_k_EXP), 0, 0, 1, 1}, + {&__pyx_n_s_Equal, __pyx_k_Equal, sizeof(__pyx_k_Equal), 0, 0, 1, 1}, + {&__pyx_kp_s_Exponential_Moving_Average, __pyx_k_Exponential_Moving_Average, sizeof(__pyx_k_Exponential_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_FLOOR, __pyx_k_FLOOR, sizeof(__pyx_k_FLOOR), 0, 0, 1, 1}, + {&__pyx_n_s_Far, __pyx_k_Far, sizeof(__pyx_k_Far), 0, 0, 1, 1}, + {&__pyx_n_s_Function, __pyx_k_Function, sizeof(__pyx_k_Function), 0, 0, 1, 1}, + {&__pyx_kp_s_Function_Not_Found_TA_FUNC_NOT_F, __pyx_k_Function_Not_Found_TA_FUNC_NOT_F, sizeof(__pyx_k_Function_Not_Found_TA_FUNC_NOT_F), 0, 0, 1, 0}, + {&__pyx_n_s_Function___call, __pyx_k_Function___call, sizeof(__pyx_k_Function___call), 0, 0, 1, 1}, + {&__pyx_n_s_Function___call_function, __pyx_k_Function___call_function, sizeof(__pyx_k_Function___call_function), 0, 0, 1, 1}, + {&__pyx_n_s_Function___check_opt_input_value, __pyx_k_Function___check_opt_input_value, sizeof(__pyx_k_Function___check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function___get_opt_input_value, __pyx_k_Function___get_opt_input_value, sizeof(__pyx_k_Function___get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function___init, __pyx_k_Function___init, sizeof(__pyx_k_Function___init), 0, 0, 1, 1}, + {&__pyx_n_s_Function___input_price_series_na, __pyx_k_Function___input_price_series_na, sizeof(__pyx_k_Function___input_price_series_na), 0, 0, 1, 1}, + {&__pyx_n_s_Function___local, __pyx_k_Function___local, sizeof(__pyx_k_Function___local), 0, 0, 1, 1}, + {&__pyx_n_s_Function___repr, __pyx_k_Function___repr, sizeof(__pyx_k_Function___repr), 0, 0, 1, 1}, + {&__pyx_n_s_Function___str, __pyx_k_Function___str, sizeof(__pyx_k_Function___str), 0, 0, 1, 1}, + {&__pyx_n_s_Function___unicode, __pyx_k_Function___unicode, sizeof(__pyx_k_Function___unicode), 0, 0, 1, 1}, + {&__pyx_n_s_Function__call_function, __pyx_k_Function__call_function, sizeof(__pyx_k_Function__call_function), 0, 0, 1, 1}, + {&__pyx_n_s_Function__check_opt_input_value, __pyx_k_Function__check_opt_input_value, sizeof(__pyx_k_Function__check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function__get_opt_input_value, __pyx_k_Function__get_opt_input_value, sizeof(__pyx_k_Function__get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_Function__input_price_series_na, __pyx_k_Function__input_price_series_na, sizeof(__pyx_k_Function__input_price_series_na), 0, 0, 1, 1}, + {&__pyx_n_s_Function__local, __pyx_k_Function__local, sizeof(__pyx_k_Function__local), 0, 0, 1, 1}, + {&__pyx_n_s_Function__localdata, __pyx_k_Function__localdata, sizeof(__pyx_k_Function__localdata), 0, 0, 1, 1}, + {&__pyx_n_s_Function__name, __pyx_k_Function__name, sizeof(__pyx_k_Function__name), 0, 0, 1, 1}, + {&__pyx_n_s_Function__namestr, __pyx_k_Function__namestr, sizeof(__pyx_k_Function__namestr), 0, 0, 1, 1}, + {&__pyx_n_s_Function_function_flags, __pyx_k_Function_function_flags, sizeof(__pyx_k_Function_function_flags), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_input_arrays, __pyx_k_Function_get_input_arrays, sizeof(__pyx_k_Function_get_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_input_names, __pyx_k_Function_get_input_names, sizeof(__pyx_k_Function_get_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_get_parameters, __pyx_k_Function_get_parameters, sizeof(__pyx_k_Function_get_parameters), 0, 0, 1, 1}, + {&__pyx_kp_s_Function_has_an_unstable_period, __pyx_k_Function_has_an_unstable_period, sizeof(__pyx_k_Function_has_an_unstable_period), 0, 0, 1, 0}, + {&__pyx_n_s_Function_info, __pyx_k_Function_info, sizeof(__pyx_k_Function_info), 0, 0, 1, 1}, + {&__pyx_n_s_Function_lookback, __pyx_k_Function_lookback, sizeof(__pyx_k_Function_lookback), 0, 0, 1, 1}, + {&__pyx_n_s_Function_output_flags, __pyx_k_Function_output_flags, sizeof(__pyx_k_Function_output_flags), 0, 0, 1, 1}, + {&__pyx_n_s_Function_output_names, __pyx_k_Function_output_names, sizeof(__pyx_k_Function_output_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_outputs, __pyx_k_Function_outputs, sizeof(__pyx_k_Function_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_Function_run, __pyx_k_Function_run, sizeof(__pyx_k_Function_run), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_function_args, __pyx_k_Function_set_function_args, sizeof(__pyx_k_Function_set_function_args), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_input_arrays, __pyx_k_Function_set_input_arrays, sizeof(__pyx_k_Function_set_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_input_names, __pyx_k_Function_set_input_names, sizeof(__pyx_k_Function_set_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_Function_set_parameters, __pyx_k_Function_set_parameters, sizeof(__pyx_k_Function_set_parameters), 0, 0, 1, 1}, + {&__pyx_kp_s_Group_Not_Found_TA_GROUP_NOT_FOU, __pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU, sizeof(__pyx_k_Group_Not_Found_TA_GROUP_NOT_FOU), 0, 0, 1, 0}, + {&__pyx_n_s_HT_DCPERIOD, __pyx_k_HT_DCPERIOD, sizeof(__pyx_k_HT_DCPERIOD), 0, 0, 1, 1}, + {&__pyx_n_s_HT_DCPHASE, __pyx_k_HT_DCPHASE, sizeof(__pyx_k_HT_DCPHASE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_PHASOR, __pyx_k_HT_PHASOR, sizeof(__pyx_k_HT_PHASOR), 0, 0, 1, 1}, + {&__pyx_n_s_HT_SINE, __pyx_k_HT_SINE, sizeof(__pyx_k_HT_SINE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_TRENDLINE, __pyx_k_HT_TRENDLINE, sizeof(__pyx_k_HT_TRENDLINE), 0, 0, 1, 1}, + {&__pyx_n_s_HT_TRENDMODE, __pyx_k_HT_TRENDMODE, sizeof(__pyx_k_HT_TRENDMODE), 0, 0, 1, 1}, + {&__pyx_n_s_HighLow, __pyx_k_HighLow, sizeof(__pyx_k_HighLow), 0, 0, 1, 1}, + {&__pyx_n_s_Histogram, __pyx_k_Histogram, sizeof(__pyx_k_Histogram), 0, 0, 1, 1}, + {&__pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_k_INPUT_ARRAYS_TYPES, sizeof(__pyx_k_INPUT_ARRAYS_TYPES), 0, 0, 1, 1}, + {&__pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_k_INPUT_PRICE_SERIES_DEFAULTS, sizeof(__pyx_k_INPUT_PRICE_SERIES_DEFAULTS), 0, 0, 1, 1}, + {&__pyx_n_s_ImportError, __pyx_k_ImportError, sizeof(__pyx_k_ImportError), 0, 0, 1, 1}, + {&__pyx_n_s_IndexError, __pyx_k_IndexError, sizeof(__pyx_k_IndexError), 0, 0, 1, 1}, + {&__pyx_kp_s_Input_Not_All_Initialized_TA_INP, __pyx_k_Input_Not_All_Initialized_TA_INP, sizeof(__pyx_k_Input_Not_All_Initialized_TA_INP), 0, 0, 1, 0}, + {&__pyx_kp_s_Inputs, __pyx_k_Inputs, sizeof(__pyx_k_Inputs), 0, 0, 1, 0}, + {&__pyx_kp_s_Internal_Error_TA_INTERNAL_ERROR, __pyx_k_Internal_Error_TA_INTERNAL_ERROR, sizeof(__pyx_k_Internal_Error_TA_INTERNAL_ERROR), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Handle_TA_INVALID_HANDLE, __pyx_k_Invalid_Handle_TA_INVALID_HANDLE, sizeof(__pyx_k_Invalid_Handle_TA_INVALID_HANDLE), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_List_Type_TA_INVALID_LIS, __pyx_k_Invalid_List_Type_TA_INVALID_LIS, sizeof(__pyx_k_Invalid_List_Type_TA_INVALID_LIS), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Function_TA_IN, __pyx_k_Invalid_Parameter_Function_TA_IN, sizeof(__pyx_k_Invalid_Parameter_Function_TA_IN), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Holder_TA_INVA, __pyx_k_Invalid_Parameter_Holder_TA_INVA, sizeof(__pyx_k_Invalid_Parameter_Holder_TA_INVA), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_Parameter_Holder_Type_TA, __pyx_k_Invalid_Parameter_Holder_Type_TA, sizeof(__pyx_k_Invalid_Parameter_Holder_Type_TA), 0, 0, 1, 0}, + {&__pyx_kp_s_Invalid_parameter_value_for_s_ex, __pyx_k_Invalid_parameter_value_for_s_ex, sizeof(__pyx_k_Invalid_parameter_value_for_s_ex), 0, 0, 1, 0}, + {&__pyx_n_s_KAMA, __pyx_k_KAMA, sizeof(__pyx_k_KAMA), 0, 0, 1, 1}, + {&__pyx_kp_s_Kaufman_Adaptive_Moving_Average, __pyx_k_Kaufman_Adaptive_Moving_Average, sizeof(__pyx_k_Kaufman_Adaptive_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_LINEARREG, __pyx_k_LINEARREG, sizeof(__pyx_k_LINEARREG), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_ANGLE, __pyx_k_LINEARREG_ANGLE, sizeof(__pyx_k_LINEARREG_ANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_INTERCEPT, __pyx_k_LINEARREG_INTERCEPT, sizeof(__pyx_k_LINEARREG_INTERCEPT), 0, 0, 1, 1}, + {&__pyx_n_s_LINEARREG_SLOPE, __pyx_k_LINEARREG_SLOPE, sizeof(__pyx_k_LINEARREG_SLOPE), 0, 0, 1, 1}, + {&__pyx_n_s_LN, __pyx_k_LN, sizeof(__pyx_k_LN), 0, 0, 1, 1}, + {&__pyx_n_s_LOG10, __pyx_k_LOG10, sizeof(__pyx_k_LOG10), 0, 0, 1, 1}, + {&__pyx_kp_s_Library_Not_Initialized_TA_LIB_N, __pyx_k_Library_Not_Initialized_TA_LIB_N, sizeof(__pyx_k_Library_Not_Initialized_TA_LIB_N), 0, 0, 1, 0}, + {&__pyx_n_s_Line, __pyx_k_Line, sizeof(__pyx_k_Line), 0, 0, 1, 1}, + {&__pyx_n_s_MA, __pyx_k_MA, sizeof(__pyx_k_MA), 0, 0, 1, 1}, + {&__pyx_n_s_MACD, __pyx_k_MACD, sizeof(__pyx_k_MACD), 0, 0, 1, 1}, + {&__pyx_n_s_MACDEXT, __pyx_k_MACDEXT, sizeof(__pyx_k_MACDEXT), 0, 0, 1, 1}, + {&__pyx_n_s_MACDFIX, __pyx_k_MACDFIX, sizeof(__pyx_k_MACDFIX), 0, 0, 1, 1}, + {&__pyx_n_s_MAMA, __pyx_k_MAMA, sizeof(__pyx_k_MAMA), 0, 0, 1, 1}, + {&__pyx_n_s_MAVP, __pyx_k_MAVP, sizeof(__pyx_k_MAVP), 0, 0, 1, 1}, + {&__pyx_n_s_MAX, __pyx_k_MAX, sizeof(__pyx_k_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_MAXINDEX, __pyx_k_MAXINDEX, sizeof(__pyx_k_MAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type, __pyx_k_MA_Type, sizeof(__pyx_k_MA_Type), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type___getitem, __pyx_k_MA_Type___getitem, sizeof(__pyx_k_MA_Type___getitem), 0, 0, 1, 1}, + {&__pyx_n_s_MA_Type___init, __pyx_k_MA_Type___init, sizeof(__pyx_k_MA_Type___init), 0, 0, 1, 1}, + {&__pyx_n_s_MEDPRICE, __pyx_k_MEDPRICE, sizeof(__pyx_k_MEDPRICE), 0, 0, 1, 1}, + {&__pyx_kp_s_MESA_Adaptive_Moving_Average, __pyx_k_MESA_Adaptive_Moving_Average, sizeof(__pyx_k_MESA_Adaptive_Moving_Average), 0, 0, 1, 0}, + {&__pyx_n_s_MFI, __pyx_k_MFI, sizeof(__pyx_k_MFI), 0, 0, 1, 1}, + {&__pyx_n_s_MIDPOINT, __pyx_k_MIDPOINT, sizeof(__pyx_k_MIDPOINT), 0, 0, 1, 1}, + {&__pyx_n_s_MIDPRICE, __pyx_k_MIDPRICE, sizeof(__pyx_k_MIDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_MIN, __pyx_k_MIN, sizeof(__pyx_k_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_MININDEX, __pyx_k_MININDEX, sizeof(__pyx_k_MININDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MINMAX, __pyx_k_MINMAX, sizeof(__pyx_k_MINMAX), 0, 0, 1, 1}, + {&__pyx_n_s_MINMAXINDEX, __pyx_k_MINMAXINDEX, sizeof(__pyx_k_MINMAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_MINUS_DI, __pyx_k_MINUS_DI, sizeof(__pyx_k_MINUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_MINUS_DM, __pyx_k_MINUS_DM, sizeof(__pyx_k_MINUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_MOM, __pyx_k_MOM, sizeof(__pyx_k_MOM), 0, 0, 1, 1}, + {&__pyx_n_s_MULT, __pyx_k_MULT, sizeof(__pyx_k_MULT), 0, 0, 1, 1}, + {&__pyx_n_s_ModuleNotFoundError, __pyx_k_ModuleNotFoundError, sizeof(__pyx_k_ModuleNotFoundError), 0, 0, 1, 1}, + {&__pyx_n_s_NATR, __pyx_k_NATR, sizeof(__pyx_k_NATR), 0, 0, 1, 1}, + {&__pyx_n_s_NONE, __pyx_k_NONE, sizeof(__pyx_k_NONE), 0, 0, 1, 1}, + {&__pyx_n_s_NameError, __pyx_k_NameError, sizeof(__pyx_k_NameError), 0, 0, 1, 1}, + {&__pyx_n_s_Near, __pyx_k_Near, sizeof(__pyx_k_Near), 0, 0, 1, 1}, + {&__pyx_kp_s_Not_Supported_TA_NOT_SUPPORTED, __pyx_k_Not_Supported_TA_NOT_SUPPORTED, sizeof(__pyx_k_Not_Supported_TA_NOT_SUPPORTED), 0, 0, 1, 0}, + {&__pyx_kp_s_Not_enough_price_arguments_expec, __pyx_k_Not_enough_price_arguments_expec, sizeof(__pyx_k_Not_enough_price_arguments_expec), 0, 0, 1, 0}, + {&__pyx_n_s_OBV, __pyx_k_OBV, sizeof(__pyx_k_OBV), 0, 0, 1, 1}, + {&__pyx_n_s_OrderedDict, __pyx_k_OrderedDict, sizeof(__pyx_k_OrderedDict), 0, 0, 1, 1}, + {&__pyx_kp_s_Out_of_Range_End_Index_TA_OUT_OF, __pyx_k_Out_of_Range_End_Index_TA_OUT_OF, sizeof(__pyx_k_Out_of_Range_End_Index_TA_OUT_OF), 0, 0, 1, 0}, + {&__pyx_kp_s_Out_of_Range_Start_Index_TA_OUT, __pyx_k_Out_of_Range_Start_Index_TA_OUT, sizeof(__pyx_k_Out_of_Range_Start_Index_TA_OUT), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_Not_All_Initialized_TA_OU, __pyx_k_Output_Not_All_Initialized_TA_OU, sizeof(__pyx_k_Output_Not_All_Initialized_TA_OU), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_negative, __pyx_k_Output_can_be_negative, sizeof(__pyx_k_Output_can_be_negative), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_positive, __pyx_k_Output_can_be_positive, sizeof(__pyx_k_Output_can_be_positive), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_can_be_zero, __pyx_k_Output_can_be_zero, sizeof(__pyx_k_Output_can_be_zero), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_is_a_candlestick, __pyx_k_Output_is_a_candlestick, sizeof(__pyx_k_Output_is_a_candlestick), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_is_over_volume, __pyx_k_Output_is_over_volume, sizeof(__pyx_k_Output_is_over_volume), 0, 0, 1, 0}, + {&__pyx_kp_s_Output_scale_same_as_input, __pyx_k_Output_scale_same_as_input, sizeof(__pyx_k_Output_scale_same_as_input), 0, 0, 1, 0}, + {&__pyx_kp_s_Outputs, __pyx_k_Outputs, sizeof(__pyx_k_Outputs), 0, 0, 1, 0}, + {&__pyx_n_s_PANDAS_DATAFRAME, __pyx_k_PANDAS_DATAFRAME, sizeof(__pyx_k_PANDAS_DATAFRAME), 0, 0, 1, 1}, + {&__pyx_n_s_PANDAS_SERIES, __pyx_k_PANDAS_SERIES, sizeof(__pyx_k_PANDAS_SERIES), 0, 0, 1, 1}, + {&__pyx_n_s_PLUS_DI, __pyx_k_PLUS_DI, sizeof(__pyx_k_PLUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_PLUS_DM, __pyx_k_PLUS_DM, sizeof(__pyx_k_PLUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_POLARS_DATAFRAME, __pyx_k_POLARS_DATAFRAME, sizeof(__pyx_k_POLARS_DATAFRAME), 0, 0, 1, 1}, + {&__pyx_n_s_POLARS_SERIES, __pyx_k_POLARS_SERIES, sizeof(__pyx_k_POLARS_SERIES), 0, 0, 1, 1}, + {&__pyx_n_s_PPO, __pyx_k_PPO, sizeof(__pyx_k_PPO), 0, 0, 1, 1}, + {&__pyx_kp_s_Parameters, __pyx_k_Parameters, sizeof(__pyx_k_Parameters), 0, 0, 1, 0}, + {&__pyx_kp_s_Pattern_Bool, __pyx_k_Pattern_Bool, sizeof(__pyx_k_Pattern_Bool), 0, 0, 1, 0}, + {&__pyx_n_s_ROC, __pyx_k_ROC, sizeof(__pyx_k_ROC), 0, 0, 1, 1}, + {&__pyx_n_s_ROCP, __pyx_k_ROCP, sizeof(__pyx_k_ROCP), 0, 0, 1, 1}, + {&__pyx_n_s_ROCR, __pyx_k_ROCR, sizeof(__pyx_k_ROCR), 0, 0, 1, 1}, + {&__pyx_n_s_ROCR100, __pyx_k_ROCR100, sizeof(__pyx_k_ROCR100), 0, 0, 1, 1}, + {&__pyx_n_s_RSI, __pyx_k_RSI, sizeof(__pyx_k_RSI), 0, 0, 1, 1}, + {&__pyx_n_s_RangeType, __pyx_k_RangeType, sizeof(__pyx_k_RangeType), 0, 0, 1, 1}, + {&__pyx_n_s_RealBody, __pyx_k_RealBody, sizeof(__pyx_k_RealBody), 0, 0, 1, 1}, + {&__pyx_n_s_SAR, __pyx_k_SAR, sizeof(__pyx_k_SAR), 0, 0, 1, 1}, + {&__pyx_n_s_SAREXT, __pyx_k_SAREXT, sizeof(__pyx_k_SAREXT), 0, 0, 1, 1}, + {&__pyx_n_s_SIN, __pyx_k_SIN, sizeof(__pyx_k_SIN), 0, 0, 1, 1}, + {&__pyx_n_s_SINH, __pyx_k_SINH, sizeof(__pyx_k_SINH), 0, 0, 1, 1}, + {&__pyx_n_s_SMA, __pyx_k_SMA, sizeof(__pyx_k_SMA), 0, 0, 1, 1}, + {&__pyx_n_s_SQRT, __pyx_k_SQRT, sizeof(__pyx_k_SQRT), 0, 0, 1, 1}, + {&__pyx_n_s_STDDEV, __pyx_k_STDDEV, sizeof(__pyx_k_STDDEV), 0, 0, 1, 1}, + {&__pyx_n_s_STOCH, __pyx_k_STOCH, sizeof(__pyx_k_STOCH), 0, 0, 1, 1}, + {&__pyx_n_s_STOCHF, __pyx_k_STOCHF, sizeof(__pyx_k_STOCHF), 0, 0, 1, 1}, + {&__pyx_n_s_STOCHRSI, __pyx_k_STOCHRSI, sizeof(__pyx_k_STOCHRSI), 0, 0, 1, 1}, + {&__pyx_n_s_SUB, __pyx_k_SUB, sizeof(__pyx_k_SUB), 0, 0, 1, 1}, + {&__pyx_n_s_SUM, __pyx_k_SUM, sizeof(__pyx_k_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_Series, __pyx_k_Series, sizeof(__pyx_k_Series), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowLong, __pyx_k_ShadowLong, sizeof(__pyx_k_ShadowLong), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowShort, __pyx_k_ShadowShort, sizeof(__pyx_k_ShadowShort), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowVeryLong, __pyx_k_ShadowVeryLong, sizeof(__pyx_k_ShadowVeryLong), 0, 0, 1, 1}, + {&__pyx_n_s_ShadowVeryShort, __pyx_k_ShadowVeryShort, sizeof(__pyx_k_ShadowVeryShort), 0, 0, 1, 1}, + {&__pyx_n_s_Shadows, __pyx_k_Shadows, sizeof(__pyx_k_Shadows), 0, 0, 1, 1}, + {&__pyx_kp_s_Simple_Moving_Average, __pyx_k_Simple_Moving_Average, sizeof(__pyx_k_Simple_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s_Strength_Pattern_200_100_Bearish, __pyx_k_Strength_Pattern_200_100_Bearish, sizeof(__pyx_k_Strength_Pattern_200_100_Bearish), 0, 0, 1, 0}, + {&__pyx_n_s_T3, __pyx_k_T3, sizeof(__pyx_k_T3), 0, 0, 1, 1}, + {&__pyx_n_s_TAN, __pyx_k_TAN, sizeof(__pyx_k_TAN), 0, 0, 1, 1}, + {&__pyx_n_s_TANH, __pyx_k_TANH, sizeof(__pyx_k_TANH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ACOS, __pyx_k_TA_ACOS, sizeof(__pyx_k_TA_ACOS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AD, __pyx_k_TA_AD, sizeof(__pyx_k_TA_AD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADD, __pyx_k_TA_ADD, sizeof(__pyx_k_TA_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADOSC, __pyx_k_TA_ADOSC, sizeof(__pyx_k_TA_ADOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADX, __pyx_k_TA_ADX, sizeof(__pyx_k_TA_ADX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ADXR, __pyx_k_TA_ADXR, sizeof(__pyx_k_TA_ADXR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_APO, __pyx_k_TA_APO, sizeof(__pyx_k_TA_APO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AROON, __pyx_k_TA_AROON, sizeof(__pyx_k_TA_AROON), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AROONOSC, __pyx_k_TA_AROONOSC, sizeof(__pyx_k_TA_AROONOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ASIN, __pyx_k_TA_ASIN, sizeof(__pyx_k_TA_ASIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ATAN, __pyx_k_TA_ATAN, sizeof(__pyx_k_TA_ATAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ATR, __pyx_k_TA_ATR, sizeof(__pyx_k_TA_ATR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_AVGPRICE, __pyx_k_TA_AVGPRICE, sizeof(__pyx_k_TA_AVGPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BBANDS, __pyx_k_TA_BBANDS, sizeof(__pyx_k_TA_BBANDS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BETA, __pyx_k_TA_BETA, sizeof(__pyx_k_TA_BETA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_BOP, __pyx_k_TA_BOP, sizeof(__pyx_k_TA_BOP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CCI, __pyx_k_TA_CCI, sizeof(__pyx_k_TA_CCI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL2CROWS, __pyx_k_TA_CDL2CROWS, sizeof(__pyx_k_TA_CDL2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3BLACKCROWS, __pyx_k_TA_CDL3BLACKCROWS, sizeof(__pyx_k_TA_CDL3BLACKCROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3INSIDE, __pyx_k_TA_CDL3INSIDE, sizeof(__pyx_k_TA_CDL3INSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3LINESTRIKE, __pyx_k_TA_CDL3LINESTRIKE, sizeof(__pyx_k_TA_CDL3LINESTRIKE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3OUTSIDE, __pyx_k_TA_CDL3OUTSIDE, sizeof(__pyx_k_TA_CDL3OUTSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3STARSINSOUTH, __pyx_k_TA_CDL3STARSINSOUTH, sizeof(__pyx_k_TA_CDL3STARSINSOUTH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDL3WHITESOLDIERS, __pyx_k_TA_CDL3WHITESOLDIERS, sizeof(__pyx_k_TA_CDL3WHITESOLDIERS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLABANDONEDBABY, __pyx_k_TA_CDLABANDONEDBABY, sizeof(__pyx_k_TA_CDLABANDONEDBABY), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLADVANCEBLOCK, __pyx_k_TA_CDLADVANCEBLOCK, sizeof(__pyx_k_TA_CDLADVANCEBLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLBELTHOLD, __pyx_k_TA_CDLBELTHOLD, sizeof(__pyx_k_TA_CDLBELTHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLBREAKAWAY, __pyx_k_TA_CDLBREAKAWAY, sizeof(__pyx_k_TA_CDLBREAKAWAY), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCLOSINGMARUBOZU, __pyx_k_TA_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_TA_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCONCEALBABYSWALL, __pyx_k_TA_CDLCONCEALBABYSWALL, sizeof(__pyx_k_TA_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLCOUNTERATTACK, __pyx_k_TA_CDLCOUNTERATTACK, sizeof(__pyx_k_TA_CDLCOUNTERATTACK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDARKCLOUDCOVER, __pyx_k_TA_CDLDARKCLOUDCOVER, sizeof(__pyx_k_TA_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDOJI, __pyx_k_TA_CDLDOJI, sizeof(__pyx_k_TA_CDLDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDOJISTAR, __pyx_k_TA_CDLDOJISTAR, sizeof(__pyx_k_TA_CDLDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLDRAGONFLYDOJI, __pyx_k_TA_CDLDRAGONFLYDOJI, sizeof(__pyx_k_TA_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLENGULFING, __pyx_k_TA_CDLENGULFING, sizeof(__pyx_k_TA_CDLENGULFING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLEVENINGDOJISTAR, __pyx_k_TA_CDLEVENINGDOJISTAR, sizeof(__pyx_k_TA_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLEVENINGSTAR, __pyx_k_TA_CDLEVENINGSTAR, sizeof(__pyx_k_TA_CDLEVENINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLGAPSIDESIDEWHITE, __pyx_k_TA_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_TA_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLGRAVESTONEDOJI, __pyx_k_TA_CDLGRAVESTONEDOJI, sizeof(__pyx_k_TA_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHAMMER, __pyx_k_TA_CDLHAMMER, sizeof(__pyx_k_TA_CDLHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHANGINGMAN, __pyx_k_TA_CDLHANGINGMAN, sizeof(__pyx_k_TA_CDLHANGINGMAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHARAMI, __pyx_k_TA_CDLHARAMI, sizeof(__pyx_k_TA_CDLHARAMI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHARAMICROSS, __pyx_k_TA_CDLHARAMICROSS, sizeof(__pyx_k_TA_CDLHARAMICROSS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIGHWAVE, __pyx_k_TA_CDLHIGHWAVE, sizeof(__pyx_k_TA_CDLHIGHWAVE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIKKAKE, __pyx_k_TA_CDLHIKKAKE, sizeof(__pyx_k_TA_CDLHIKKAKE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHIKKAKEMOD, __pyx_k_TA_CDLHIKKAKEMOD, sizeof(__pyx_k_TA_CDLHIKKAKEMOD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLHOMINGPIGEON, __pyx_k_TA_CDLHOMINGPIGEON, sizeof(__pyx_k_TA_CDLHOMINGPIGEON), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLIDENTICAL3CROWS, __pyx_k_TA_CDLIDENTICAL3CROWS, sizeof(__pyx_k_TA_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLINNECK, __pyx_k_TA_CDLINNECK, sizeof(__pyx_k_TA_CDLINNECK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLINVERTEDHAMMER, __pyx_k_TA_CDLINVERTEDHAMMER, sizeof(__pyx_k_TA_CDLINVERTEDHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLKICKING, __pyx_k_TA_CDLKICKING, sizeof(__pyx_k_TA_CDLKICKING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLKICKINGBYLENGTH, __pyx_k_TA_CDLKICKINGBYLENGTH, sizeof(__pyx_k_TA_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLADDERBOTTOM, __pyx_k_TA_CDLLADDERBOTTOM, sizeof(__pyx_k_TA_CDLLADDERBOTTOM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLONGLEGGEDDOJI, __pyx_k_TA_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_TA_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLLONGLINE, __pyx_k_TA_CDLLONGLINE, sizeof(__pyx_k_TA_CDLLONGLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMARUBOZU, __pyx_k_TA_CDLMARUBOZU, sizeof(__pyx_k_TA_CDLMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMATCHINGLOW, __pyx_k_TA_CDLMATCHINGLOW, sizeof(__pyx_k_TA_CDLMATCHINGLOW), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMATHOLD, __pyx_k_TA_CDLMATHOLD, sizeof(__pyx_k_TA_CDLMATHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMORNINGDOJISTAR, __pyx_k_TA_CDLMORNINGDOJISTAR, sizeof(__pyx_k_TA_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLMORNINGSTAR, __pyx_k_TA_CDLMORNINGSTAR, sizeof(__pyx_k_TA_CDLMORNINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLONNECK, __pyx_k_TA_CDLONNECK, sizeof(__pyx_k_TA_CDLONNECK), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLPIERCING, __pyx_k_TA_CDLPIERCING, sizeof(__pyx_k_TA_CDLPIERCING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLRICKSHAWMAN, __pyx_k_TA_CDLRICKSHAWMAN, sizeof(__pyx_k_TA_CDLRICKSHAWMAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLRISEFALL3METHODS, __pyx_k_TA_CDLRISEFALL3METHODS, sizeof(__pyx_k_TA_CDLRISEFALL3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSEPARATINGLINES, __pyx_k_TA_CDLSEPARATINGLINES, sizeof(__pyx_k_TA_CDLSEPARATINGLINES), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSHOOTINGSTAR, __pyx_k_TA_CDLSHOOTINGSTAR, sizeof(__pyx_k_TA_CDLSHOOTINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSHORTLINE, __pyx_k_TA_CDLSHORTLINE, sizeof(__pyx_k_TA_CDLSHORTLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSPINNINGTOP, __pyx_k_TA_CDLSPINNINGTOP, sizeof(__pyx_k_TA_CDLSPINNINGTOP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSTALLEDPATTERN, __pyx_k_TA_CDLSTALLEDPATTERN, sizeof(__pyx_k_TA_CDLSTALLEDPATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLSTICKSANDWICH, __pyx_k_TA_CDLSTICKSANDWICH, sizeof(__pyx_k_TA_CDLSTICKSANDWICH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTAKURI, __pyx_k_TA_CDLTAKURI, sizeof(__pyx_k_TA_CDLTAKURI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTASUKIGAP, __pyx_k_TA_CDLTASUKIGAP, sizeof(__pyx_k_TA_CDLTASUKIGAP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTHRUSTING, __pyx_k_TA_CDLTHRUSTING, sizeof(__pyx_k_TA_CDLTHRUSTING), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLTRISTAR, __pyx_k_TA_CDLTRISTAR, sizeof(__pyx_k_TA_CDLTRISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLUNIQUE3RIVER, __pyx_k_TA_CDLUNIQUE3RIVER, sizeof(__pyx_k_TA_CDLUNIQUE3RIVER), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLUPSIDEGAP2CROWS, __pyx_k_TA_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_TA_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CDLXSIDEGAP3METHODS, __pyx_k_TA_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_TA_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CEIL, __pyx_k_TA_CEIL, sizeof(__pyx_k_TA_CEIL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CMO, __pyx_k_TA_CMO, sizeof(__pyx_k_TA_CMO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_CORREL, __pyx_k_TA_CORREL, sizeof(__pyx_k_TA_CORREL), 0, 0, 1, 1}, + {&__pyx_n_s_TA_COS, __pyx_k_TA_COS, sizeof(__pyx_k_TA_COS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_COSH, __pyx_k_TA_COSH, sizeof(__pyx_k_TA_COSH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DEMA, __pyx_k_TA_DEMA, sizeof(__pyx_k_TA_DEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DIV, __pyx_k_TA_DIV, sizeof(__pyx_k_TA_DIV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_DX, __pyx_k_TA_DX, sizeof(__pyx_k_TA_DX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_EMA, __pyx_k_TA_EMA, sizeof(__pyx_k_TA_EMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_EXP, __pyx_k_TA_EXP, sizeof(__pyx_k_TA_EXP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FLOOR, __pyx_k_TA_FLOOR, sizeof(__pyx_k_TA_FLOOR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FUNCTION_NAMES, __pyx_k_TA_FUNCTION_NAMES, sizeof(__pyx_k_TA_FUNCTION_NAMES), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FUNC_FLAGS, __pyx_k_TA_FUNC_FLAGS, sizeof(__pyx_k_TA_FUNC_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FuncTableAlloc, __pyx_k_TA_FuncTableAlloc, sizeof(__pyx_k_TA_FuncTableAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_FuncTableFree, __pyx_k_TA_FuncTableFree, sizeof(__pyx_k_TA_FuncTableFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetFuncHandle, __pyx_k_TA_GetFuncHandle, sizeof(__pyx_k_TA_GetFuncHandle), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetFuncInfo, __pyx_k_TA_GetFuncInfo, sizeof(__pyx_k_TA_GetFuncInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetInputParameterInfo, __pyx_k_TA_GetInputParameterInfo, sizeof(__pyx_k_TA_GetInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetLookback, __pyx_k_TA_GetLookback, sizeof(__pyx_k_TA_GetLookback), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetOptInputParameterInfo, __pyx_k_TA_GetOptInputParameterInfo, sizeof(__pyx_k_TA_GetOptInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GetOutputParameterInfo, __pyx_k_TA_GetOutputParameterInfo, sizeof(__pyx_k_TA_GetOutputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GroupTableAlloc, __pyx_k_TA_GroupTableAlloc, sizeof(__pyx_k_TA_GroupTableAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_GroupTableFree, __pyx_k_TA_GroupTableFree, sizeof(__pyx_k_TA_GroupTableFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_DCPERIOD, __pyx_k_TA_HT_DCPERIOD, sizeof(__pyx_k_TA_HT_DCPERIOD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_DCPHASE, __pyx_k_TA_HT_DCPHASE, sizeof(__pyx_k_TA_HT_DCPHASE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_PHASOR, __pyx_k_TA_HT_PHASOR, sizeof(__pyx_k_TA_HT_PHASOR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_SINE, __pyx_k_TA_HT_SINE, sizeof(__pyx_k_TA_HT_SINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_TRENDLINE, __pyx_k_TA_HT_TRENDLINE, sizeof(__pyx_k_TA_HT_TRENDLINE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_HT_TRENDMODE, __pyx_k_TA_HT_TRENDMODE, sizeof(__pyx_k_TA_HT_TRENDMODE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_INPUT_FLAGS, __pyx_k_TA_INPUT_FLAGS, sizeof(__pyx_k_TA_INPUT_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_Initialize, __pyx_k_TA_Initialize, sizeof(__pyx_k_TA_Initialize), 0, 0, 1, 1}, + {&__pyx_n_s_TA_KAMA, __pyx_k_TA_KAMA, sizeof(__pyx_k_TA_KAMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG, __pyx_k_TA_LINEARREG, sizeof(__pyx_k_TA_LINEARREG), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_ANGLE, __pyx_k_TA_LINEARREG_ANGLE, sizeof(__pyx_k_TA_LINEARREG_ANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_INTERCEPT, __pyx_k_TA_LINEARREG_INTERCEPT, sizeof(__pyx_k_TA_LINEARREG_INTERCEPT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LINEARREG_SLOPE, __pyx_k_TA_LINEARREG_SLOPE, sizeof(__pyx_k_TA_LINEARREG_SLOPE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LN, __pyx_k_TA_LN, sizeof(__pyx_k_TA_LN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_LOG10, __pyx_k_TA_LOG10, sizeof(__pyx_k_TA_LOG10), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MA, __pyx_k_TA_MA, sizeof(__pyx_k_TA_MA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACD, __pyx_k_TA_MACD, sizeof(__pyx_k_TA_MACD), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACDEXT, __pyx_k_TA_MACDEXT, sizeof(__pyx_k_TA_MACDEXT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MACDFIX, __pyx_k_TA_MACDFIX, sizeof(__pyx_k_TA_MACDFIX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAMA, __pyx_k_TA_MAMA, sizeof(__pyx_k_TA_MAMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAVP, __pyx_k_TA_MAVP, sizeof(__pyx_k_TA_MAVP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAX, __pyx_k_TA_MAX, sizeof(__pyx_k_TA_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MAXINDEX, __pyx_k_TA_MAXINDEX, sizeof(__pyx_k_TA_MAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MEDPRICE, __pyx_k_TA_MEDPRICE, sizeof(__pyx_k_TA_MEDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MFI, __pyx_k_TA_MFI, sizeof(__pyx_k_TA_MFI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIDPOINT, __pyx_k_TA_MIDPOINT, sizeof(__pyx_k_TA_MIDPOINT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIDPRICE, __pyx_k_TA_MIDPRICE, sizeof(__pyx_k_TA_MIDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MIN, __pyx_k_TA_MIN, sizeof(__pyx_k_TA_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MININDEX, __pyx_k_TA_MININDEX, sizeof(__pyx_k_TA_MININDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINMAX, __pyx_k_TA_MINMAX, sizeof(__pyx_k_TA_MINMAX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINMAXINDEX, __pyx_k_TA_MINMAXINDEX, sizeof(__pyx_k_TA_MINMAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINUS_DI, __pyx_k_TA_MINUS_DI, sizeof(__pyx_k_TA_MINUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MINUS_DM, __pyx_k_TA_MINUS_DM, sizeof(__pyx_k_TA_MINUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MOM, __pyx_k_TA_MOM, sizeof(__pyx_k_TA_MOM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_MULT, __pyx_k_TA_MULT, sizeof(__pyx_k_TA_MULT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_NATR, __pyx_k_TA_NATR, sizeof(__pyx_k_TA_NATR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_OBV, __pyx_k_TA_OBV, sizeof(__pyx_k_TA_OBV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_OUTPUT_FLAGS, __pyx_k_TA_OUTPUT_FLAGS, sizeof(__pyx_k_TA_OUTPUT_FLAGS), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PLUS_DI, __pyx_k_TA_PLUS_DI, sizeof(__pyx_k_TA_PLUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PLUS_DM, __pyx_k_TA_PLUS_DM, sizeof(__pyx_k_TA_PLUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_PPO, __pyx_k_TA_PPO, sizeof(__pyx_k_TA_PPO), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ParamHolderAlloc, __pyx_k_TA_ParamHolderAlloc, sizeof(__pyx_k_TA_ParamHolderAlloc), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ParamHolderFree, __pyx_k_TA_ParamHolderFree, sizeof(__pyx_k_TA_ParamHolderFree), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROC, __pyx_k_TA_ROC, sizeof(__pyx_k_TA_ROC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCP, __pyx_k_TA_ROCP, sizeof(__pyx_k_TA_ROCP), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCR, __pyx_k_TA_ROCR, sizeof(__pyx_k_TA_ROCR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ROCR100, __pyx_k_TA_ROCR100, sizeof(__pyx_k_TA_ROCR100), 0, 0, 1, 1}, + {&__pyx_n_s_TA_RSI, __pyx_k_TA_RSI, sizeof(__pyx_k_TA_RSI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_RestoreCandleDefaultSettings, __pyx_k_TA_RestoreCandleDefaultSettings, sizeof(__pyx_k_TA_RestoreCandleDefaultSettings), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SAR, __pyx_k_TA_SAR, sizeof(__pyx_k_TA_SAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SAREXT, __pyx_k_TA_SAREXT, sizeof(__pyx_k_TA_SAREXT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SIN, __pyx_k_TA_SIN, sizeof(__pyx_k_TA_SIN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SINH, __pyx_k_TA_SINH, sizeof(__pyx_k_TA_SINH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SMA, __pyx_k_TA_SMA, sizeof(__pyx_k_TA_SMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SQRT, __pyx_k_TA_SQRT, sizeof(__pyx_k_TA_SQRT), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STDDEV, __pyx_k_TA_STDDEV, sizeof(__pyx_k_TA_STDDEV), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCH, __pyx_k_TA_STOCH, sizeof(__pyx_k_TA_STOCH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCHF, __pyx_k_TA_STOCHF, sizeof(__pyx_k_TA_STOCHF), 0, 0, 1, 1}, + {&__pyx_n_s_TA_STOCHRSI, __pyx_k_TA_STOCHRSI, sizeof(__pyx_k_TA_STOCHRSI), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SUB, __pyx_k_TA_SUB, sizeof(__pyx_k_TA_SUB), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SUM, __pyx_k_TA_SUM, sizeof(__pyx_k_TA_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetCandleSettings, __pyx_k_TA_SetCandleSettings, sizeof(__pyx_k_TA_SetCandleSettings), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetCompatibility, __pyx_k_TA_SetCompatibility, sizeof(__pyx_k_TA_SetCompatibility), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetOptInputParamInteger, __pyx_k_TA_SetOptInputParamInteger, sizeof(__pyx_k_TA_SetOptInputParamInteger), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetOptInputParamReal, __pyx_k_TA_SetOptInputParamReal, sizeof(__pyx_k_TA_SetOptInputParamReal), 0, 0, 1, 1}, + {&__pyx_n_s_TA_SetUnstablePeriod, __pyx_k_TA_SetUnstablePeriod, sizeof(__pyx_k_TA_SetUnstablePeriod), 0, 0, 1, 1}, + {&__pyx_n_s_TA_Shutdown, __pyx_k_TA_Shutdown, sizeof(__pyx_k_TA_Shutdown), 0, 0, 1, 1}, + {&__pyx_n_s_TA_T3, __pyx_k_TA_T3, sizeof(__pyx_k_TA_T3), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TAN, __pyx_k_TA_TAN, sizeof(__pyx_k_TA_TAN), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TANH, __pyx_k_TA_TANH, sizeof(__pyx_k_TA_TANH), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TEMA, __pyx_k_TA_TEMA, sizeof(__pyx_k_TA_TEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRANGE, __pyx_k_TA_TRANGE, sizeof(__pyx_k_TA_TRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRIMA, __pyx_k_TA_TRIMA, sizeof(__pyx_k_TA_TRIMA), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TRIX, __pyx_k_TA_TRIX, sizeof(__pyx_k_TA_TRIX), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TSF, __pyx_k_TA_TSF, sizeof(__pyx_k_TA_TSF), 0, 0, 1, 1}, + {&__pyx_n_s_TA_TYPPRICE, __pyx_k_TA_TYPPRICE, sizeof(__pyx_k_TA_TYPPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_ULTOSC, __pyx_k_TA_ULTOSC, sizeof(__pyx_k_TA_ULTOSC), 0, 0, 1, 1}, + {&__pyx_n_s_TA_VAR, __pyx_k_TA_VAR, sizeof(__pyx_k_TA_VAR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WCLPRICE, __pyx_k_TA_WCLPRICE, sizeof(__pyx_k_TA_WCLPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WILLR, __pyx_k_TA_WILLR, sizeof(__pyx_k_TA_WILLR), 0, 0, 1, 1}, + {&__pyx_n_s_TA_WMA, __pyx_k_TA_WMA, sizeof(__pyx_k_TA_WMA), 0, 0, 1, 1}, + {&__pyx_n_s_TEMA, __pyx_k_TEMA, sizeof(__pyx_k_TEMA), 0, 0, 1, 1}, + {&__pyx_n_s_TRANGE, __pyx_k_TRANGE, sizeof(__pyx_k_TRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_TRIMA, __pyx_k_TRIMA, sizeof(__pyx_k_TRIMA), 0, 0, 1, 1}, + {&__pyx_n_s_TRIX, __pyx_k_TRIX, sizeof(__pyx_k_TRIX), 0, 0, 1, 1}, + {&__pyx_n_s_TSF, __pyx_k_TSF, sizeof(__pyx_k_TSF), 0, 0, 1, 1}, + {&__pyx_n_s_TYPPRICE, __pyx_k_TYPPRICE, sizeof(__pyx_k_TYPPRICE), 0, 0, 1, 1}, + {&__pyx_kp_s_This_is_a_pythonic_wrapper_arou, __pyx_k_This_is_a_pythonic_wrapper_arou, sizeof(__pyx_k_This_is_a_pythonic_wrapper_arou), 0, 0, 1, 0}, + {&__pyx_kp_s_Too_many_price_arguments_expecte, __pyx_k_Too_many_price_arguments_expecte, sizeof(__pyx_k_Too_many_price_arguments_expecte), 0, 0, 1, 0}, + {&__pyx_kp_s_Triangular_Moving_Average, __pyx_k_Triangular_Moving_Average, sizeof(__pyx_k_Triangular_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s_Triple_Exponential_Moving_Averag, __pyx_k_Triple_Exponential_Moving_Averag, sizeof(__pyx_k_Triple_Exponential_Moving_Averag), 0, 0, 1, 0}, + {&__pyx_kp_s_Triple_Generalized_Double_Expone, __pyx_k_Triple_Generalized_Double_Expone, sizeof(__pyx_k_Triple_Generalized_Double_Expone), 0, 0, 1, 0}, + {&__pyx_n_s_TypeError, __pyx_k_TypeError, sizeof(__pyx_k_TypeError), 0, 0, 1, 1}, + {&__pyx_n_s_ULTOSC, __pyx_k_ULTOSC, sizeof(__pyx_k_ULTOSC), 0, 0, 1, 1}, + {&__pyx_kp_s_Unknown_Error, __pyx_k_Unknown_Error, sizeof(__pyx_k_Unknown_Error), 0, 0, 1, 0}, + {&__pyx_kp_s_Unknown_Error_TA_UNKNOWN_ERR, __pyx_k_Unknown_Error_TA_UNKNOWN_ERR, sizeof(__pyx_k_Unknown_Error_TA_UNKNOWN_ERR), 0, 0, 1, 0}, + {&__pyx_n_s_VAR, __pyx_k_VAR, sizeof(__pyx_k_VAR), 0, 0, 1, 1}, + {&__pyx_kp_s_Values_represent_a_lower_limit, __pyx_k_Values_represent_a_lower_limit, sizeof(__pyx_k_Values_represent_a_lower_limit), 0, 0, 1, 0}, + {&__pyx_kp_s_Values_represent_an_upper_limit, __pyx_k_Values_represent_an_upper_limit, sizeof(__pyx_k_Values_represent_an_upper_limit), 0, 0, 1, 0}, + {&__pyx_n_s_WCLPRICE, __pyx_k_WCLPRICE, sizeof(__pyx_k_WCLPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_WILLR, __pyx_k_WILLR, sizeof(__pyx_k_WILLR), 0, 0, 1, 1}, + {&__pyx_n_s_WMA, __pyx_k_WMA, sizeof(__pyx_k_WMA), 0, 0, 1, 1}, + {&__pyx_kp_s_Weighted_Moving_Average, __pyx_k_Weighted_Moving_Average, sizeof(__pyx_k_Weighted_Moving_Average), 0, 0, 1, 0}, + {&__pyx_kp_s__10, __pyx_k__10, sizeof(__pyx_k__10), 0, 0, 1, 0}, + {&__pyx_kp_s__11, __pyx_k__11, sizeof(__pyx_k__11), 0, 0, 1, 0}, + {&__pyx_kp_s__12, __pyx_k__12, sizeof(__pyx_k__12), 0, 0, 1, 0}, + {&__pyx_n_s__240, __pyx_k__240, sizeof(__pyx_k__240), 0, 0, 1, 1}, + {&__pyx_kp_u__43, __pyx_k__43, sizeof(__pyx_k__43), 0, 1, 0, 0}, + {&__pyx_n_s__503, __pyx_k__503, sizeof(__pyx_k__503), 0, 0, 1, 1}, + {&__pyx_kp_s__6, __pyx_k__6, sizeof(__pyx_k__6), 0, 0, 1, 0}, + {&__pyx_kp_s__7, __pyx_k__7, sizeof(__pyx_k__7), 0, 0, 1, 0}, + {&__pyx_kp_s__9, __pyx_k__9, sizeof(__pyx_k__9), 0, 0, 1, 0}, + {&__pyx_n_s_acceleration, __pyx_k_acceleration, sizeof(__pyx_k_acceleration), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationinitlong, __pyx_k_accelerationinitlong, sizeof(__pyx_k_accelerationinitlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationinitshort, __pyx_k_accelerationinitshort, sizeof(__pyx_k_accelerationinitshort), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationlong, __pyx_k_accelerationlong, sizeof(__pyx_k_accelerationlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationmaxlong, __pyx_k_accelerationmaxlong, sizeof(__pyx_k_accelerationmaxlong), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationmaxshort, __pyx_k_accelerationmaxshort, sizeof(__pyx_k_accelerationmaxshort), 0, 0, 1, 1}, + {&__pyx_n_s_accelerationshort, __pyx_k_accelerationshort, sizeof(__pyx_k_accelerationshort), 0, 0, 1, 1}, + {&__pyx_n_s_all, __pyx_k_all, sizeof(__pyx_k_all), 0, 0, 1, 1}, + {&__pyx_kp_s_any_ndarray, __pyx_k_any_ndarray, sizeof(__pyx_k_any_ndarray), 0, 0, 1, 0}, + {&__pyx_n_s_append, __pyx_k_append, sizeof(__pyx_k_append), 0, 0, 1, 1}, + {&__pyx_n_s_arg, __pyx_k_arg, sizeof(__pyx_k_arg), 0, 0, 1, 1}, + {&__pyx_n_s_args, __pyx_k_args, sizeof(__pyx_k_args), 0, 0, 1, 1}, + {&__pyx_n_s_ascii, __pyx_k_ascii, sizeof(__pyx_k_ascii), 0, 0, 1, 1}, + {&__pyx_n_s_astype, __pyx_k_astype, sizeof(__pyx_k_astype), 0, 0, 1, 1}, + {&__pyx_n_s_asyncio_coroutines, __pyx_k_asyncio_coroutines, sizeof(__pyx_k_asyncio_coroutines), 0, 0, 1, 1}, + {&__pyx_n_s_avgperiod, __pyx_k_avgperiod, sizeof(__pyx_k_avgperiod), 0, 0, 1, 1}, + {&__pyx_n_s_b, __pyx_k_b, sizeof(__pyx_k_b), 0, 0, 1, 1}, + {&__pyx_n_s_begidx, __pyx_k_begidx, sizeof(__pyx_k_begidx), 0, 0, 1, 1}, + {&__pyx_n_s_bytes2str, __pyx_k_bytes2str, sizeof(__pyx_k_bytes2str), 0, 0, 1, 1}, + {&__pyx_n_s_call, __pyx_k_call, sizeof(__pyx_k_call), 0, 0, 1, 1}, + {&__pyx_n_s_call_function, __pyx_k_call_function, sizeof(__pyx_k_call_function), 0, 0, 1, 1}, + {&__pyx_n_s_check_opt_input_value, __pyx_k_check_opt_input_value, sizeof(__pyx_k_check_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_class_getitem, __pyx_k_class_getitem, sizeof(__pyx_k_class_getitem), 0, 0, 1, 1}, + {&__pyx_n_s_cline_in_traceback, __pyx_k_cline_in_traceback, sizeof(__pyx_k_cline_in_traceback), 0, 0, 1, 1}, + {&__pyx_n_s_clone, __pyx_k_clone, sizeof(__pyx_k_clone), 0, 0, 1, 1}, + {&__pyx_n_s_close, __pyx_k_close, sizeof(__pyx_k_close), 0, 0, 1, 1}, + {&__pyx_n_s_close_data, __pyx_k_close_data, sizeof(__pyx_k_close_data), 0, 0, 1, 1}, + {&__pyx_n_s_collections, __pyx_k_collections, sizeof(__pyx_k_collections), 0, 0, 1, 1}, + {&__pyx_n_s_column_stack, __pyx_k_column_stack, sizeof(__pyx_k_column_stack), 0, 0, 1, 1}, + {&__pyx_n_s_columns, __pyx_k_columns, sizeof(__pyx_k_columns), 0, 0, 1, 1}, + {&__pyx_n_s_copy, __pyx_k_copy, sizeof(__pyx_k_copy), 0, 0, 1, 1}, + {&__pyx_n_s_decode, __pyx_k_decode, sizeof(__pyx_k_decode), 0, 0, 1, 1}, + {&__pyx_n_s_default_value, __pyx_k_default_value, sizeof(__pyx_k_default_value), 0, 0, 1, 1}, + {&__pyx_n_s_defaults, __pyx_k_defaults, sizeof(__pyx_k_defaults), 0, 0, 1, 1}, + {&__pyx_n_s_dict, __pyx_k_dict, sizeof(__pyx_k_dict), 0, 0, 1, 1}, + {&__pyx_n_s_display_name, __pyx_k_display_name, sizeof(__pyx_k_display_name), 0, 0, 1, 1}, + {&__pyx_kp_s_display_name_s_group_s, __pyx_k_display_name_s_group_s, sizeof(__pyx_k_display_name_s_group_s), 0, 0, 1, 0}, + {&__pyx_n_s_doc, __pyx_k_doc, sizeof(__pyx_k_doc), 0, 0, 1, 1}, + {&__pyx_n_s_docs, __pyx_k_docs, sizeof(__pyx_k_docs), 0, 0, 1, 1}, + {&__pyx_n_s_documentation, __pyx_k_documentation, sizeof(__pyx_k_documentation), 0, 0, 1, 1}, + {&__pyx_n_s_empty, __pyx_k_empty, sizeof(__pyx_k_empty), 0, 0, 1, 1}, + {&__pyx_n_s_endidx, __pyx_k_endidx, sizeof(__pyx_k_endidx), 0, 0, 1, 1}, + {&__pyx_n_s_enumerate, __pyx_k_enumerate, sizeof(__pyx_k_enumerate), 0, 0, 1, 1}, + {&__pyx_n_s_factor, __pyx_k_factor, sizeof(__pyx_k_factor), 0, 0, 1, 1}, + {&__pyx_n_s_fastd_matype, __pyx_k_fastd_matype, sizeof(__pyx_k_fastd_matype), 0, 0, 1, 1}, + {&__pyx_n_s_fastd_period, __pyx_k_fastd_period, sizeof(__pyx_k_fastd_period), 0, 0, 1, 1}, + {&__pyx_n_s_fastk_period, __pyx_k_fastk_period, sizeof(__pyx_k_fastk_period), 0, 0, 1, 1}, + {&__pyx_n_s_fastlimit, __pyx_k_fastlimit, sizeof(__pyx_k_fastlimit), 0, 0, 1, 1}, + {&__pyx_n_s_fastmatype, __pyx_k_fastmatype, sizeof(__pyx_k_fastmatype), 0, 0, 1, 1}, + {&__pyx_n_s_fastperiod, __pyx_k_fastperiod, sizeof(__pyx_k_fastperiod), 0, 0, 1, 1}, + {&__pyx_n_s_flag, __pyx_k_flag, sizeof(__pyx_k_flag), 0, 0, 1, 1}, + {&__pyx_n_s_flags, __pyx_k_flags, sizeof(__pyx_k_flags), 0, 0, 1, 1}, + {&__pyx_n_s_flags_lookup_dict, __pyx_k_flags_lookup_dict, sizeof(__pyx_k_flags_lookup_dict), 0, 0, 1, 1}, + {&__pyx_n_s_func_args, __pyx_k_func_args, sizeof(__pyx_k_func_args), 0, 0, 1, 1}, + {&__pyx_n_s_func_info, __pyx_k_func_info, sizeof(__pyx_k_func_info), 0, 0, 1, 1}, + {&__pyx_n_s_func_line, __pyx_k_func_line, sizeof(__pyx_k_func_line), 0, 0, 1, 1}, + {&__pyx_n_s_func_object, __pyx_k_func_object, sizeof(__pyx_k_func_object), 0, 0, 1, 1}, + {&__pyx_n_s_function_flags, __pyx_k_function_flags, sizeof(__pyx_k_function_flags), 0, 0, 1, 1}, + {&__pyx_n_s_function_name, __pyx_k_function_name, sizeof(__pyx_k_function_name), 0, 0, 1, 1}, + {&__pyx_n_s_functions, __pyx_k_functions, sizeof(__pyx_k_functions), 0, 0, 1, 1}, + {&__pyx_n_s_get_defaults_and_docs, __pyx_k_get_defaults_and_docs, sizeof(__pyx_k_get_defaults_and_docs), 0, 0, 1, 1}, + {&__pyx_n_s_get_flags, __pyx_k_get_flags, sizeof(__pyx_k_get_flags), 0, 0, 1, 1}, + {&__pyx_n_s_get_input_arrays, __pyx_k_get_input_arrays, sizeof(__pyx_k_get_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_get_input_names, __pyx_k_get_input_names, sizeof(__pyx_k_get_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_get_opt_input_value, __pyx_k_get_opt_input_value, sizeof(__pyx_k_get_opt_input_value), 0, 0, 1, 1}, + {&__pyx_n_s_get_parameters, __pyx_k_get_parameters, sizeof(__pyx_k_get_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_getitem, __pyx_k_getitem, sizeof(__pyx_k_getitem), 0, 0, 1, 1}, + {&__pyx_n_s_group, __pyx_k_group, sizeof(__pyx_k_group), 0, 0, 1, 1}, + {&__pyx_n_s_groups, __pyx_k_groups, sizeof(__pyx_k_groups), 0, 0, 1, 1}, + {&__pyx_n_s_help, __pyx_k_help, sizeof(__pyx_k_help), 0, 0, 1, 1}, + {&__pyx_n_s_high, __pyx_k_high, sizeof(__pyx_k_high), 0, 0, 1, 1}, + {&__pyx_n_s_high_data, __pyx_k_high_data, sizeof(__pyx_k_high_data), 0, 0, 1, 1}, + {&__pyx_n_s_holder, __pyx_k_holder, sizeof(__pyx_k_holder), 0, 0, 1, 1}, + {&__pyx_n_s_i, __pyx_k_i, sizeof(__pyx_k_i), 0, 0, 1, 1}, + {&__pyx_n_s_id, __pyx_k_id, sizeof(__pyx_k_id), 0, 0, 1, 1}, + {&__pyx_n_s_idx, __pyx_k_idx, sizeof(__pyx_k_idx), 0, 0, 1, 1}, + {&__pyx_n_s_import, __pyx_k_import, sizeof(__pyx_k_import), 0, 0, 1, 1}, + {&__pyx_n_s_import_error, __pyx_k_import_error, sizeof(__pyx_k_import_error), 0, 0, 1, 1}, + {&__pyx_n_s_in, __pyx_k_in, sizeof(__pyx_k_in), 0, 0, 1, 1}, + {&__pyx_n_s_index, __pyx_k_index, sizeof(__pyx_k_index), 0, 0, 1, 1}, + {&__pyx_n_s_info, __pyx_k_info, sizeof(__pyx_k_info), 0, 0, 1, 1}, + {&__pyx_n_s_init, __pyx_k_init, sizeof(__pyx_k_init), 0, 0, 1, 1}, + {&__pyx_n_s_init_subclass, __pyx_k_init_subclass, sizeof(__pyx_k_init_subclass), 0, 0, 1, 1}, + {&__pyx_n_s_initializing, __pyx_k_initializing, sizeof(__pyx_k_initializing), 0, 0, 1, 1}, + {&__pyx_kp_s_input_array_has_wrong_dimensions, __pyx_k_input_array_has_wrong_dimensions, sizeof(__pyx_k_input_array_has_wrong_dimensions), 0, 0, 1, 0}, + {&__pyx_kp_s_input_array_lengths_are_differen, __pyx_k_input_array_lengths_are_differen, sizeof(__pyx_k_input_array_lengths_are_differen), 0, 0, 1, 0}, + {&__pyx_kp_s_input_array_type_is_not_double, __pyx_k_input_array_type_is_not_double, sizeof(__pyx_k_input_array_type_is_not_double), 0, 0, 1, 0}, + {&__pyx_n_s_input_arrays, __pyx_k_input_arrays, sizeof(__pyx_k_input_arrays), 0, 0, 1, 1}, + {&__pyx_kp_s_input_arrays_2, __pyx_k_input_arrays_2, sizeof(__pyx_k_input_arrays_2), 0, 0, 1, 0}, + {&__pyx_kp_s_input_arrays_parameter_missing_r, __pyx_k_input_arrays_parameter_missing_r, sizeof(__pyx_k_input_arrays_parameter_missing_r), 0, 0, 1, 0}, + {&__pyx_n_s_input_name, __pyx_k_input_name, sizeof(__pyx_k_input_name), 0, 0, 1, 1}, + {&__pyx_n_s_input_names, __pyx_k_input_names, sizeof(__pyx_k_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_input_price_series_names, __pyx_k_input_price_series_names, sizeof(__pyx_k_input_price_series_names), 0, 0, 1, 1}, + {&__pyx_n_s_input_price_series_names_2, __pyx_k_input_price_series_names_2, sizeof(__pyx_k_input_price_series_names_2), 0, 0, 1, 1}, + {&__pyx_n_s_integer, __pyx_k_integer, sizeof(__pyx_k_integer), 0, 0, 1, 1}, + {&__pyx_kp_s_integer_values_are_100_0_or_100, __pyx_k_integer_values_are_100_0_or_100, sizeof(__pyx_k_integer_values_are_100_0_or_100), 0, 0, 1, 0}, + {&__pyx_n_s_is_coroutine, __pyx_k_is_coroutine, sizeof(__pyx_k_is_coroutine), 0, 0, 1, 1}, + {&__pyx_n_s_is_empty, __pyx_k_is_empty, sizeof(__pyx_k_is_empty), 0, 0, 1, 1}, + {&__pyx_n_s_items, __pyx_k_items, sizeof(__pyx_k_items), 0, 0, 1, 1}, + {&__pyx_n_s_join, __pyx_k_join, sizeof(__pyx_k_join), 0, 0, 1, 1}, + {&__pyx_n_s_key, __pyx_k_key, sizeof(__pyx_k_key), 0, 0, 1, 1}, + {&__pyx_n_s_keys, __pyx_k_keys, sizeof(__pyx_k_keys), 0, 0, 1, 1}, + {&__pyx_n_s_kwargs, __pyx_k_kwargs, sizeof(__pyx_k_kwargs), 0, 0, 1, 1}, + {&__pyx_n_s_length, __pyx_k_length, sizeof(__pyx_k_length), 0, 0, 1, 1}, + {&__pyx_n_s_local, __pyx_k_local, sizeof(__pyx_k_local), 0, 0, 1, 1}, + {&__pyx_n_s_local_2, __pyx_k_local_2, sizeof(__pyx_k_local_2), 0, 0, 1, 1}, + {&__pyx_n_s_log, __pyx_k_log, sizeof(__pyx_k_log), 0, 0, 1, 1}, + {&__pyx_n_s_lookback, __pyx_k_lookback, sizeof(__pyx_k_lookback), 0, 0, 1, 1}, + {&__pyx_n_s_lookup, __pyx_k_lookup, sizeof(__pyx_k_lookup), 0, 0, 1, 1}, + {&__pyx_n_s_low, __pyx_k_low, sizeof(__pyx_k_low), 0, 0, 1, 1}, + {&__pyx_n_s_low_data, __pyx_k_low_data, sizeof(__pyx_k_low_data), 0, 0, 1, 1}, + {&__pyx_n_s_lower, __pyx_k_lower, sizeof(__pyx_k_lower), 0, 0, 1, 1}, + {&__pyx_n_s_main, __pyx_k_main, sizeof(__pyx_k_main), 0, 0, 1, 1}, + {&__pyx_n_s_math, __pyx_k_math, sizeof(__pyx_k_math), 0, 0, 1, 1}, + {&__pyx_n_s_matype, __pyx_k_matype, sizeof(__pyx_k_matype), 0, 0, 1, 1}, + {&__pyx_n_s_max, __pyx_k_max, sizeof(__pyx_k_max), 0, 0, 1, 1}, + {&__pyx_n_s_max_int, __pyx_k_max_int, sizeof(__pyx_k_max_int), 0, 0, 1, 1}, + {&__pyx_n_s_maximum, __pyx_k_maximum, sizeof(__pyx_k_maximum), 0, 0, 1, 1}, + {&__pyx_n_s_maxperiod, __pyx_k_maxperiod, sizeof(__pyx_k_maxperiod), 0, 0, 1, 1}, + {&__pyx_n_s_metaclass, __pyx_k_metaclass, sizeof(__pyx_k_metaclass), 0, 0, 1, 1}, + {&__pyx_n_s_min, __pyx_k_min, sizeof(__pyx_k_min), 0, 0, 1, 1}, + {&__pyx_n_s_min_int, __pyx_k_min_int, sizeof(__pyx_k_min_int), 0, 0, 1, 1}, + {&__pyx_n_s_minperiod, __pyx_k_minperiod, sizeof(__pyx_k_minperiod), 0, 0, 1, 1}, + {&__pyx_n_s_missing, __pyx_k_missing, sizeof(__pyx_k_missing), 0, 0, 1, 1}, + {&__pyx_n_s_missing_keys, __pyx_k_missing_keys, sizeof(__pyx_k_missing_keys), 0, 0, 1, 1}, + {&__pyx_n_s_module, __pyx_k_module, sizeof(__pyx_k_module), 0, 0, 1, 1}, + {&__pyx_n_s_mro_entries, __pyx_k_mro_entries, sizeof(__pyx_k_mro_entries), 0, 0, 1, 1}, + {&__pyx_n_s_msg, __pyx_k_msg, sizeof(__pyx_k_msg), 0, 0, 1, 1}, + {&__pyx_n_s_n, __pyx_k_n, sizeof(__pyx_k_n), 0, 0, 1, 1}, + {&__pyx_n_s_name, __pyx_k_name, sizeof(__pyx_k_name), 0, 0, 1, 1}, + {&__pyx_n_s_name_2, __pyx_k_name_2, sizeof(__pyx_k_name_2), 0, 0, 1, 1}, + {&__pyx_n_s_nan, __pyx_k_nan, sizeof(__pyx_k_nan), 0, 0, 1, 1}, + {&__pyx_n_s_nbdev, __pyx_k_nbdev, sizeof(__pyx_k_nbdev), 0, 0, 1, 1}, + {&__pyx_n_s_nbdevdn, __pyx_k_nbdevdn, sizeof(__pyx_k_nbdevdn), 0, 0, 1, 1}, + {&__pyx_n_s_nbdevup, __pyx_k_nbdevup, sizeof(__pyx_k_nbdevup), 0, 0, 1, 1}, + {&__pyx_n_s_no_existing_input_arrays, __pyx_k_no_existing_input_arrays, sizeof(__pyx_k_no_existing_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_num_inputs, __pyx_k_num_inputs, sizeof(__pyx_k_num_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_num_opt_inputs, __pyx_k_num_opt_inputs, sizeof(__pyx_k_num_opt_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_num_outputs, __pyx_k_num_outputs, sizeof(__pyx_k_num_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_numpy, __pyx_k_numpy, sizeof(__pyx_k_numpy), 0, 0, 1, 1}, + {&__pyx_kp_s_numpy__core_multiarray_failed_to, __pyx_k_numpy__core_multiarray_failed_to, sizeof(__pyx_k_numpy__core_multiarray_failed_to), 0, 0, 1, 0}, + {&__pyx_kp_s_numpy__core_umath_failed_to_impo, __pyx_k_numpy__core_umath_failed_to_impo, sizeof(__pyx_k_numpy__core_umath_failed_to_impo), 0, 0, 1, 0}, + {&__pyx_n_s_object, __pyx_k_object, sizeof(__pyx_k_object), 0, 0, 1, 1}, + {&__pyx_n_s_offsetonreverse, __pyx_k_offsetonreverse, sizeof(__pyx_k_offsetonreverse), 0, 0, 1, 1}, + {&__pyx_n_s_open, __pyx_k_open, sizeof(__pyx_k_open), 0, 0, 1, 1}, + {&__pyx_n_s_openInterest, __pyx_k_openInterest, sizeof(__pyx_k_openInterest), 0, 0, 1, 1}, + {&__pyx_n_s_open_data, __pyx_k_open_data, sizeof(__pyx_k_open_data), 0, 0, 1, 1}, + {&__pyx_n_s_optIn, __pyx_k_optIn, sizeof(__pyx_k_optIn), 0, 0, 1, 1}, + {&__pyx_n_s_opt_input, __pyx_k_opt_input, sizeof(__pyx_k_opt_input), 0, 0, 1, 1}, + {&__pyx_n_s_opt_input_values, __pyx_k_opt_input_values, sizeof(__pyx_k_opt_input_values), 0, 0, 1, 1}, + {&__pyx_n_s_opt_inputs, __pyx_k_opt_inputs, sizeof(__pyx_k_opt_inputs), 0, 0, 1, 1}, + {&__pyx_n_s_ordereddict, __pyx_k_ordereddict, sizeof(__pyx_k_ordereddict), 0, 0, 1, 1}, + {&__pyx_n_s_out, __pyx_k_out, sizeof(__pyx_k_out), 0, 0, 1, 1}, + {&__pyx_n_s_outaroondown, __pyx_k_outaroondown, sizeof(__pyx_k_outaroondown), 0, 0, 1, 1}, + {&__pyx_n_s_outaroonup, __pyx_k_outaroonup, sizeof(__pyx_k_outaroonup), 0, 0, 1, 1}, + {&__pyx_n_s_outbegidx, __pyx_k_outbegidx, sizeof(__pyx_k_outbegidx), 0, 0, 1, 1}, + {&__pyx_n_s_outfama, __pyx_k_outfama, sizeof(__pyx_k_outfama), 0, 0, 1, 1}, + {&__pyx_n_s_outfastd, __pyx_k_outfastd, sizeof(__pyx_k_outfastd), 0, 0, 1, 1}, + {&__pyx_n_s_outfastk, __pyx_k_outfastk, sizeof(__pyx_k_outfastk), 0, 0, 1, 1}, + {&__pyx_n_s_outinphase, __pyx_k_outinphase, sizeof(__pyx_k_outinphase), 0, 0, 1, 1}, + {&__pyx_n_s_outinteger, __pyx_k_outinteger, sizeof(__pyx_k_outinteger), 0, 0, 1, 1}, + {&__pyx_n_s_outinteger_data, __pyx_k_outinteger_data, sizeof(__pyx_k_outinteger_data), 0, 0, 1, 1}, + {&__pyx_n_s_outleadsine, __pyx_k_outleadsine, sizeof(__pyx_k_outleadsine), 0, 0, 1, 1}, + {&__pyx_n_s_outmacd, __pyx_k_outmacd, sizeof(__pyx_k_outmacd), 0, 0, 1, 1}, + {&__pyx_n_s_outmacdhist, __pyx_k_outmacdhist, sizeof(__pyx_k_outmacdhist), 0, 0, 1, 1}, + {&__pyx_n_s_outmacdsignal, __pyx_k_outmacdsignal, sizeof(__pyx_k_outmacdsignal), 0, 0, 1, 1}, + {&__pyx_n_s_outmama, __pyx_k_outmama, sizeof(__pyx_k_outmama), 0, 0, 1, 1}, + {&__pyx_n_s_outmax, __pyx_k_outmax, sizeof(__pyx_k_outmax), 0, 0, 1, 1}, + {&__pyx_n_s_outmaxidx, __pyx_k_outmaxidx, sizeof(__pyx_k_outmaxidx), 0, 0, 1, 1}, + {&__pyx_n_s_outmaxidx_data, __pyx_k_outmaxidx_data, sizeof(__pyx_k_outmaxidx_data), 0, 0, 1, 1}, + {&__pyx_n_s_outmin, __pyx_k_outmin, sizeof(__pyx_k_outmin), 0, 0, 1, 1}, + {&__pyx_n_s_outminidx, __pyx_k_outminidx, sizeof(__pyx_k_outminidx), 0, 0, 1, 1}, + {&__pyx_n_s_outminidx_data, __pyx_k_outminidx_data, sizeof(__pyx_k_outminidx_data), 0, 0, 1, 1}, + {&__pyx_n_s_outnbelement, __pyx_k_outnbelement, sizeof(__pyx_k_outnbelement), 0, 0, 1, 1}, + {&__pyx_n_s_output, __pyx_k_output, sizeof(__pyx_k_output), 0, 0, 1, 1}, + {&__pyx_n_s_output_flags, __pyx_k_output_flags, sizeof(__pyx_k_output_flags), 0, 0, 1, 1}, + {&__pyx_n_s_output_name, __pyx_k_output_name, sizeof(__pyx_k_output_name), 0, 0, 1, 1}, + {&__pyx_n_s_output_names, __pyx_k_output_names, sizeof(__pyx_k_output_names), 0, 0, 1, 1}, + {&__pyx_n_s_outputs, __pyx_k_outputs, sizeof(__pyx_k_outputs), 0, 0, 1, 1}, + {&__pyx_n_s_outputs_valid, __pyx_k_outputs_valid, sizeof(__pyx_k_outputs_valid), 0, 0, 1, 1}, + {&__pyx_n_s_outquadrature, __pyx_k_outquadrature, sizeof(__pyx_k_outquadrature), 0, 0, 1, 1}, + {&__pyx_n_s_outreal, __pyx_k_outreal, sizeof(__pyx_k_outreal), 0, 0, 1, 1}, + {&__pyx_n_s_outreallowerband, __pyx_k_outreallowerband, sizeof(__pyx_k_outreallowerband), 0, 0, 1, 1}, + {&__pyx_n_s_outrealmiddleband, __pyx_k_outrealmiddleband, sizeof(__pyx_k_outrealmiddleband), 0, 0, 1, 1}, + {&__pyx_n_s_outrealupperband, __pyx_k_outrealupperband, sizeof(__pyx_k_outrealupperband), 0, 0, 1, 1}, + {&__pyx_n_s_outsine, __pyx_k_outsine, sizeof(__pyx_k_outsine), 0, 0, 1, 1}, + {&__pyx_n_s_outslowd, __pyx_k_outslowd, sizeof(__pyx_k_outslowd), 0, 0, 1, 1}, + {&__pyx_n_s_outslowk, __pyx_k_outslowk, sizeof(__pyx_k_outslowk), 0, 0, 1, 1}, + {&__pyx_n_s_pandas, __pyx_k_pandas, sizeof(__pyx_k_pandas), 0, 0, 1, 1}, + {&__pyx_n_s_param, __pyx_k_param, sizeof(__pyx_k_param), 0, 0, 1, 1}, + {&__pyx_n_s_param_name, __pyx_k_param_name, sizeof(__pyx_k_param_name), 0, 0, 1, 1}, + {&__pyx_n_s_parameters, __pyx_k_parameters, sizeof(__pyx_k_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_params, __pyx_k_params, sizeof(__pyx_k_params), 0, 0, 1, 1}, + {&__pyx_n_s_penetration, __pyx_k_penetration, sizeof(__pyx_k_penetration), 0, 0, 1, 1}, + {&__pyx_n_s_period, __pyx_k_period, sizeof(__pyx_k_period), 0, 0, 1, 1}, + {&__pyx_n_s_periods, __pyx_k_periods, sizeof(__pyx_k_periods), 0, 0, 1, 1}, + {&__pyx_n_s_periods_data, __pyx_k_periods_data, sizeof(__pyx_k_periods_data), 0, 0, 1, 1}, + {&__pyx_n_s_polars, __pyx_k_polars, sizeof(__pyx_k_polars), 0, 0, 1, 1}, + {&__pyx_n_s_pop, __pyx_k_pop, sizeof(__pyx_k_pop), 0, 0, 1, 1}, + {&__pyx_n_s_prepare, __pyx_k_prepare, sizeof(__pyx_k_prepare), 0, 0, 1, 1}, + {&__pyx_n_s_price, __pyx_k_price, sizeof(__pyx_k_price), 0, 0, 1, 1}, + {&__pyx_n_s_price0, __pyx_k_price0, sizeof(__pyx_k_price0), 0, 0, 1, 1}, + {&__pyx_n_s_price1, __pyx_k_price1, sizeof(__pyx_k_price1), 0, 0, 1, 1}, + {&__pyx_n_s_price_series, __pyx_k_price_series, sizeof(__pyx_k_price_series), 0, 0, 1, 1}, + {&__pyx_n_s_price_series_name_values, __pyx_k_price_series_name_values, sizeof(__pyx_k_price_series_name_values), 0, 0, 1, 1}, + {&__pyx_n_s_prices, __pyx_k_prices, sizeof(__pyx_k_prices), 0, 0, 1, 1}, + {&__pyx_n_s_property, __pyx_k_property, sizeof(__pyx_k_property), 0, 0, 1, 1}, + {&__pyx_n_s_qualname, __pyx_k_qualname, sizeof(__pyx_k_qualname), 0, 0, 1, 1}, + {&__pyx_n_s_range, __pyx_k_range, sizeof(__pyx_k_range), 0, 0, 1, 1}, + {&__pyx_n_s_rangetype, __pyx_k_rangetype, sizeof(__pyx_k_rangetype), 0, 0, 1, 1}, + {&__pyx_n_s_real, __pyx_k_real, sizeof(__pyx_k_real), 0, 0, 1, 1}, + {&__pyx_n_s_real0, __pyx_k_real0, sizeof(__pyx_k_real0), 0, 0, 1, 1}, + {&__pyx_n_s_real0_data, __pyx_k_real0_data, sizeof(__pyx_k_real0_data), 0, 0, 1, 1}, + {&__pyx_n_s_real1, __pyx_k_real1, sizeof(__pyx_k_real1), 0, 0, 1, 1}, + {&__pyx_n_s_real1_data, __pyx_k_real1_data, sizeof(__pyx_k_real1_data), 0, 0, 1, 1}, + {&__pyx_n_s_real_data, __pyx_k_real_data, sizeof(__pyx_k_real_data), 0, 0, 1, 1}, + {&__pyx_n_s_replace, __pyx_k_replace, sizeof(__pyx_k_replace), 0, 0, 1, 1}, + {&__pyx_n_s_repr, __pyx_k_repr, sizeof(__pyx_k_repr), 0, 0, 1, 1}, + {&__pyx_n_s_results, __pyx_k_results, sizeof(__pyx_k_results), 0, 0, 1, 1}, + {&__pyx_n_s_ret, __pyx_k_ret, sizeof(__pyx_k_ret), 0, 0, 1, 1}, + {&__pyx_n_s_retCode, __pyx_k_retCode, sizeof(__pyx_k_retCode), 0, 0, 1, 1}, + {&__pyx_n_s_ret_code, __pyx_k_ret_code, sizeof(__pyx_k_ret_code), 0, 0, 1, 1}, + {&__pyx_n_s_run, __pyx_k_run, sizeof(__pyx_k_run), 0, 0, 1, 1}, + {&__pyx_n_s_s, __pyx_k_s, sizeof(__pyx_k_s), 0, 0, 1, 1}, + {&__pyx_kp_s_s_2, __pyx_k_s_2, sizeof(__pyx_k_s_2), 0, 0, 1, 0}, + {&__pyx_kp_s_s_3, __pyx_k_s_3, sizeof(__pyx_k_s_3), 0, 0, 1, 0}, + {&__pyx_kp_s_s_4, __pyx_k_s_4, sizeof(__pyx_k_s_4), 0, 0, 1, 0}, + {&__pyx_kp_s_s_function_failed_with_error_co, __pyx_k_s_function_failed_with_error_co, sizeof(__pyx_k_s_function_failed_with_error_co), 0, 0, 1, 0}, + {&__pyx_kp_s_s_s, __pyx_k_s_s, sizeof(__pyx_k_s_s), 0, 0, 1, 0}, + {&__pyx_kp_s_s_s_2, __pyx_k_s_s_2, sizeof(__pyx_k_s_s_2), 0, 0, 1, 0}, + {&__pyx_n_s_schema, __pyx_k_schema, sizeof(__pyx_k_schema), 0, 0, 1, 1}, + {&__pyx_n_s_self, __pyx_k_self, sizeof(__pyx_k_self), 0, 0, 1, 1}, + {&__pyx_n_s_series, __pyx_k_series, sizeof(__pyx_k_series), 0, 0, 1, 1}, + {&__pyx_n_s_set_function_args, __pyx_k_set_function_args, sizeof(__pyx_k_set_function_args), 0, 0, 1, 1}, + {&__pyx_n_s_set_input_arrays, __pyx_k_set_input_arrays, sizeof(__pyx_k_set_input_arrays), 0, 0, 1, 1}, + {&__pyx_n_s_set_input_names, __pyx_k_set_input_names, sizeof(__pyx_k_set_input_names), 0, 0, 1, 1}, + {&__pyx_n_s_set_name, __pyx_k_set_name, sizeof(__pyx_k_set_name), 0, 0, 1, 1}, + {&__pyx_n_s_set_parameters, __pyx_k_set_parameters, sizeof(__pyx_k_set_parameters), 0, 0, 1, 1}, + {&__pyx_n_s_settingtype, __pyx_k_settingtype, sizeof(__pyx_k_settingtype), 0, 0, 1, 1}, + {&__pyx_n_s_signalmatype, __pyx_k_signalmatype, sizeof(__pyx_k_signalmatype), 0, 0, 1, 1}, + {&__pyx_n_s_signalperiod, __pyx_k_signalperiod, sizeof(__pyx_k_signalperiod), 0, 0, 1, 1}, + {&__pyx_n_s_skip_first, __pyx_k_skip_first, sizeof(__pyx_k_skip_first), 0, 0, 1, 1}, + {&__pyx_n_s_slowd_matype, __pyx_k_slowd_matype, sizeof(__pyx_k_slowd_matype), 0, 0, 1, 1}, + {&__pyx_n_s_slowd_period, __pyx_k_slowd_period, sizeof(__pyx_k_slowd_period), 0, 0, 1, 1}, + {&__pyx_n_s_slowk_matype, __pyx_k_slowk_matype, sizeof(__pyx_k_slowk_matype), 0, 0, 1, 1}, + {&__pyx_n_s_slowk_period, __pyx_k_slowk_period, sizeof(__pyx_k_slowk_period), 0, 0, 1, 1}, + {&__pyx_n_s_slowlimit, __pyx_k_slowlimit, sizeof(__pyx_k_slowlimit), 0, 0, 1, 1}, + {&__pyx_n_s_slowmatype, __pyx_k_slowmatype, sizeof(__pyx_k_slowmatype), 0, 0, 1, 1}, + {&__pyx_n_s_slowperiod, __pyx_k_slowperiod, sizeof(__pyx_k_slowperiod), 0, 0, 1, 1}, + {&__pyx_n_s_spec, __pyx_k_spec, sizeof(__pyx_k_spec), 0, 0, 1, 1}, + {&__pyx_n_s_startvalue, __pyx_k_startvalue, sizeof(__pyx_k_startvalue), 0, 0, 1, 1}, + {&__pyx_n_s_str, __pyx_k_str, sizeof(__pyx_k_str), 0, 0, 1, 1}, + {&__pyx_n_s_str2bytes, __pyx_k_str2bytes, sizeof(__pyx_k_str2bytes), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ACOS, __pyx_k_stream_ACOS, sizeof(__pyx_k_stream_ACOS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_AD, __pyx_k_stream_AD, sizeof(__pyx_k_stream_AD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ADD, __pyx_k_stream_ADD, sizeof(__pyx_k_stream_ADD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ADOSC, __pyx_k_stream_ADOSC, sizeof(__pyx_k_stream_ADOSC), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ADX, __pyx_k_stream_ADX, sizeof(__pyx_k_stream_ADX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ADXR, __pyx_k_stream_ADXR, sizeof(__pyx_k_stream_ADXR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_APO, __pyx_k_stream_APO, sizeof(__pyx_k_stream_APO), 0, 0, 1, 1}, + {&__pyx_n_s_stream_AROON, __pyx_k_stream_AROON, sizeof(__pyx_k_stream_AROON), 0, 0, 1, 1}, + {&__pyx_n_s_stream_AROONOSC, __pyx_k_stream_AROONOSC, sizeof(__pyx_k_stream_AROONOSC), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ASIN, __pyx_k_stream_ASIN, sizeof(__pyx_k_stream_ASIN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ATAN, __pyx_k_stream_ATAN, sizeof(__pyx_k_stream_ATAN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ATR, __pyx_k_stream_ATR, sizeof(__pyx_k_stream_ATR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_AVGPRICE, __pyx_k_stream_AVGPRICE, sizeof(__pyx_k_stream_AVGPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_BBANDS, __pyx_k_stream_BBANDS, sizeof(__pyx_k_stream_BBANDS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_BETA, __pyx_k_stream_BETA, sizeof(__pyx_k_stream_BETA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_BOP, __pyx_k_stream_BOP, sizeof(__pyx_k_stream_BOP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CCI, __pyx_k_stream_CCI, sizeof(__pyx_k_stream_CCI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL2CROWS, __pyx_k_stream_CDL2CROWS, sizeof(__pyx_k_stream_CDL2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3BLACKCROWS, __pyx_k_stream_CDL3BLACKCROWS, sizeof(__pyx_k_stream_CDL3BLACKCROWS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3INSIDE, __pyx_k_stream_CDL3INSIDE, sizeof(__pyx_k_stream_CDL3INSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3LINESTRIKE, __pyx_k_stream_CDL3LINESTRIKE, sizeof(__pyx_k_stream_CDL3LINESTRIKE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3OUTSIDE, __pyx_k_stream_CDL3OUTSIDE, sizeof(__pyx_k_stream_CDL3OUTSIDE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_k_stream_CDL3STARSINSOUTH, sizeof(__pyx_k_stream_CDL3STARSINSOUTH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_k_stream_CDL3WHITESOLDIERS, sizeof(__pyx_k_stream_CDL3WHITESOLDIERS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLABANDONEDBABY, __pyx_k_stream_CDLABANDONEDBABY, sizeof(__pyx_k_stream_CDLABANDONEDBABY), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_k_stream_CDLADVANCEBLOCK, sizeof(__pyx_k_stream_CDLADVANCEBLOCK), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLBELTHOLD, __pyx_k_stream_CDLBELTHOLD, sizeof(__pyx_k_stream_CDLBELTHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLBREAKAWAY, __pyx_k_stream_CDLBREAKAWAY, sizeof(__pyx_k_stream_CDLBREAKAWAY), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_k_stream_CDLCLOSINGMARUBOZU, sizeof(__pyx_k_stream_CDLCLOSINGMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_k_stream_CDLCONCEALBABYSWALL, sizeof(__pyx_k_stream_CDLCONCEALBABYSWALL), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_k_stream_CDLCOUNTERATTACK, sizeof(__pyx_k_stream_CDLCOUNTERATTACK), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_k_stream_CDLDARKCLOUDCOVER, sizeof(__pyx_k_stream_CDLDARKCLOUDCOVER), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLDOJI, __pyx_k_stream_CDLDOJI, sizeof(__pyx_k_stream_CDLDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLDOJISTAR, __pyx_k_stream_CDLDOJISTAR, sizeof(__pyx_k_stream_CDLDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_k_stream_CDLDRAGONFLYDOJI, sizeof(__pyx_k_stream_CDLDRAGONFLYDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLENGULFING, __pyx_k_stream_CDLENGULFING, sizeof(__pyx_k_stream_CDLENGULFING), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_k_stream_CDLEVENINGDOJISTAR, sizeof(__pyx_k_stream_CDLEVENINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLEVENINGSTAR, __pyx_k_stream_CDLEVENINGSTAR, sizeof(__pyx_k_stream_CDLEVENINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_k_stream_CDLGAPSIDESIDEWHITE, sizeof(__pyx_k_stream_CDLGAPSIDESIDEWHITE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_k_stream_CDLGRAVESTONEDOJI, sizeof(__pyx_k_stream_CDLGRAVESTONEDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHAMMER, __pyx_k_stream_CDLHAMMER, sizeof(__pyx_k_stream_CDLHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHANGINGMAN, __pyx_k_stream_CDLHANGINGMAN, sizeof(__pyx_k_stream_CDLHANGINGMAN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHARAMI, __pyx_k_stream_CDLHARAMI, sizeof(__pyx_k_stream_CDLHARAMI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHARAMICROSS, __pyx_k_stream_CDLHARAMICROSS, sizeof(__pyx_k_stream_CDLHARAMICROSS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHIGHWAVE, __pyx_k_stream_CDLHIGHWAVE, sizeof(__pyx_k_stream_CDLHIGHWAVE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHIKKAKE, __pyx_k_stream_CDLHIKKAKE, sizeof(__pyx_k_stream_CDLHIKKAKE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_k_stream_CDLHIKKAKEMOD, sizeof(__pyx_k_stream_CDLHIKKAKEMOD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_k_stream_CDLHOMINGPIGEON, sizeof(__pyx_k_stream_CDLHOMINGPIGEON), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_k_stream_CDLIDENTICAL3CROWS, sizeof(__pyx_k_stream_CDLIDENTICAL3CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLINNECK, __pyx_k_stream_CDLINNECK, sizeof(__pyx_k_stream_CDLINNECK), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_k_stream_CDLINVERTEDHAMMER, sizeof(__pyx_k_stream_CDLINVERTEDHAMMER), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLKICKING, __pyx_k_stream_CDLKICKING, sizeof(__pyx_k_stream_CDLKICKING), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_k_stream_CDLKICKINGBYLENGTH, sizeof(__pyx_k_stream_CDLKICKINGBYLENGTH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_k_stream_CDLLADDERBOTTOM, sizeof(__pyx_k_stream_CDLLADDERBOTTOM), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_k_stream_CDLLONGLEGGEDDOJI, sizeof(__pyx_k_stream_CDLLONGLEGGEDDOJI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLLONGLINE, __pyx_k_stream_CDLLONGLINE, sizeof(__pyx_k_stream_CDLLONGLINE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLMARUBOZU, __pyx_k_stream_CDLMARUBOZU, sizeof(__pyx_k_stream_CDLMARUBOZU), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLMATCHINGLOW, __pyx_k_stream_CDLMATCHINGLOW, sizeof(__pyx_k_stream_CDLMATCHINGLOW), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLMATHOLD, __pyx_k_stream_CDLMATHOLD, sizeof(__pyx_k_stream_CDLMATHOLD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_k_stream_CDLMORNINGDOJISTAR, sizeof(__pyx_k_stream_CDLMORNINGDOJISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLMORNINGSTAR, __pyx_k_stream_CDLMORNINGSTAR, sizeof(__pyx_k_stream_CDLMORNINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLONNECK, __pyx_k_stream_CDLONNECK, sizeof(__pyx_k_stream_CDLONNECK), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLPIERCING, __pyx_k_stream_CDLPIERCING, sizeof(__pyx_k_stream_CDLPIERCING), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_k_stream_CDLRICKSHAWMAN, sizeof(__pyx_k_stream_CDLRICKSHAWMAN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_k_stream_CDLRISEFALL3METHODS, sizeof(__pyx_k_stream_CDLRISEFALL3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_k_stream_CDLSEPARATINGLINES, sizeof(__pyx_k_stream_CDLSEPARATINGLINES), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_k_stream_CDLSHOOTINGSTAR, sizeof(__pyx_k_stream_CDLSHOOTINGSTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSHORTLINE, __pyx_k_stream_CDLSHORTLINE, sizeof(__pyx_k_stream_CDLSHORTLINE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSPINNINGTOP, __pyx_k_stream_CDLSPINNINGTOP, sizeof(__pyx_k_stream_CDLSPINNINGTOP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_k_stream_CDLSTALLEDPATTERN, sizeof(__pyx_k_stream_CDLSTALLEDPATTERN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_k_stream_CDLSTICKSANDWICH, sizeof(__pyx_k_stream_CDLSTICKSANDWICH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLTAKURI, __pyx_k_stream_CDLTAKURI, sizeof(__pyx_k_stream_CDLTAKURI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLTASUKIGAP, __pyx_k_stream_CDLTASUKIGAP, sizeof(__pyx_k_stream_CDLTASUKIGAP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLTHRUSTING, __pyx_k_stream_CDLTHRUSTING, sizeof(__pyx_k_stream_CDLTHRUSTING), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLTRISTAR, __pyx_k_stream_CDLTRISTAR, sizeof(__pyx_k_stream_CDLTRISTAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_k_stream_CDLUNIQUE3RIVER, sizeof(__pyx_k_stream_CDLUNIQUE3RIVER), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_k_stream_CDLUPSIDEGAP2CROWS, sizeof(__pyx_k_stream_CDLUPSIDEGAP2CROWS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_k_stream_CDLXSIDEGAP3METHODS, sizeof(__pyx_k_stream_CDLXSIDEGAP3METHODS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CEIL, __pyx_k_stream_CEIL, sizeof(__pyx_k_stream_CEIL), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CMO, __pyx_k_stream_CMO, sizeof(__pyx_k_stream_CMO), 0, 0, 1, 1}, + {&__pyx_n_s_stream_CORREL, __pyx_k_stream_CORREL, sizeof(__pyx_k_stream_CORREL), 0, 0, 1, 1}, + {&__pyx_n_s_stream_COS, __pyx_k_stream_COS, sizeof(__pyx_k_stream_COS), 0, 0, 1, 1}, + {&__pyx_n_s_stream_COSH, __pyx_k_stream_COSH, sizeof(__pyx_k_stream_COSH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_DEMA, __pyx_k_stream_DEMA, sizeof(__pyx_k_stream_DEMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_DIV, __pyx_k_stream_DIV, sizeof(__pyx_k_stream_DIV), 0, 0, 1, 1}, + {&__pyx_n_s_stream_DX, __pyx_k_stream_DX, sizeof(__pyx_k_stream_DX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_EMA, __pyx_k_stream_EMA, sizeof(__pyx_k_stream_EMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_EXP, __pyx_k_stream_EXP, sizeof(__pyx_k_stream_EXP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_FLOOR, __pyx_k_stream_FLOOR, sizeof(__pyx_k_stream_FLOOR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_DCPERIOD, __pyx_k_stream_HT_DCPERIOD, sizeof(__pyx_k_stream_HT_DCPERIOD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_DCPHASE, __pyx_k_stream_HT_DCPHASE, sizeof(__pyx_k_stream_HT_DCPHASE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_PHASOR, __pyx_k_stream_HT_PHASOR, sizeof(__pyx_k_stream_HT_PHASOR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_SINE, __pyx_k_stream_HT_SINE, sizeof(__pyx_k_stream_HT_SINE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_TRENDLINE, __pyx_k_stream_HT_TRENDLINE, sizeof(__pyx_k_stream_HT_TRENDLINE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_HT_TRENDMODE, __pyx_k_stream_HT_TRENDMODE, sizeof(__pyx_k_stream_HT_TRENDMODE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_KAMA, __pyx_k_stream_KAMA, sizeof(__pyx_k_stream_KAMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LINEARREG, __pyx_k_stream_LINEARREG, sizeof(__pyx_k_stream_LINEARREG), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LINEARREG_ANGLE, __pyx_k_stream_LINEARREG_ANGLE, sizeof(__pyx_k_stream_LINEARREG_ANGLE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_k_stream_LINEARREG_INTERCEPT, sizeof(__pyx_k_stream_LINEARREG_INTERCEPT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LINEARREG_SLOPE, __pyx_k_stream_LINEARREG_SLOPE, sizeof(__pyx_k_stream_LINEARREG_SLOPE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LN, __pyx_k_stream_LN, sizeof(__pyx_k_stream_LN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_LOG10, __pyx_k_stream_LOG10, sizeof(__pyx_k_stream_LOG10), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MA, __pyx_k_stream_MA, sizeof(__pyx_k_stream_MA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MACD, __pyx_k_stream_MACD, sizeof(__pyx_k_stream_MACD), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MACDEXT, __pyx_k_stream_MACDEXT, sizeof(__pyx_k_stream_MACDEXT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MACDFIX, __pyx_k_stream_MACDFIX, sizeof(__pyx_k_stream_MACDFIX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MAMA, __pyx_k_stream_MAMA, sizeof(__pyx_k_stream_MAMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MAVP, __pyx_k_stream_MAVP, sizeof(__pyx_k_stream_MAVP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MAX, __pyx_k_stream_MAX, sizeof(__pyx_k_stream_MAX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MAXINDEX, __pyx_k_stream_MAXINDEX, sizeof(__pyx_k_stream_MAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MEDPRICE, __pyx_k_stream_MEDPRICE, sizeof(__pyx_k_stream_MEDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MFI, __pyx_k_stream_MFI, sizeof(__pyx_k_stream_MFI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MIDPOINT, __pyx_k_stream_MIDPOINT, sizeof(__pyx_k_stream_MIDPOINT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MIDPRICE, __pyx_k_stream_MIDPRICE, sizeof(__pyx_k_stream_MIDPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MIN, __pyx_k_stream_MIN, sizeof(__pyx_k_stream_MIN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MININDEX, __pyx_k_stream_MININDEX, sizeof(__pyx_k_stream_MININDEX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MINMAX, __pyx_k_stream_MINMAX, sizeof(__pyx_k_stream_MINMAX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MINMAXINDEX, __pyx_k_stream_MINMAXINDEX, sizeof(__pyx_k_stream_MINMAXINDEX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MINUS_DI, __pyx_k_stream_MINUS_DI, sizeof(__pyx_k_stream_MINUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MINUS_DM, __pyx_k_stream_MINUS_DM, sizeof(__pyx_k_stream_MINUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MOM, __pyx_k_stream_MOM, sizeof(__pyx_k_stream_MOM), 0, 0, 1, 1}, + {&__pyx_n_s_stream_MULT, __pyx_k_stream_MULT, sizeof(__pyx_k_stream_MULT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_NATR, __pyx_k_stream_NATR, sizeof(__pyx_k_stream_NATR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_OBV, __pyx_k_stream_OBV, sizeof(__pyx_k_stream_OBV), 0, 0, 1, 1}, + {&__pyx_n_s_stream_PLUS_DI, __pyx_k_stream_PLUS_DI, sizeof(__pyx_k_stream_PLUS_DI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_PLUS_DM, __pyx_k_stream_PLUS_DM, sizeof(__pyx_k_stream_PLUS_DM), 0, 0, 1, 1}, + {&__pyx_n_s_stream_PPO, __pyx_k_stream_PPO, sizeof(__pyx_k_stream_PPO), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ROC, __pyx_k_stream_ROC, sizeof(__pyx_k_stream_ROC), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ROCP, __pyx_k_stream_ROCP, sizeof(__pyx_k_stream_ROCP), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ROCR, __pyx_k_stream_ROCR, sizeof(__pyx_k_stream_ROCR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ROCR100, __pyx_k_stream_ROCR100, sizeof(__pyx_k_stream_ROCR100), 0, 0, 1, 1}, + {&__pyx_n_s_stream_RSI, __pyx_k_stream_RSI, sizeof(__pyx_k_stream_RSI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SAR, __pyx_k_stream_SAR, sizeof(__pyx_k_stream_SAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SAREXT, __pyx_k_stream_SAREXT, sizeof(__pyx_k_stream_SAREXT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SIN, __pyx_k_stream_SIN, sizeof(__pyx_k_stream_SIN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SINH, __pyx_k_stream_SINH, sizeof(__pyx_k_stream_SINH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SMA, __pyx_k_stream_SMA, sizeof(__pyx_k_stream_SMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SQRT, __pyx_k_stream_SQRT, sizeof(__pyx_k_stream_SQRT), 0, 0, 1, 1}, + {&__pyx_n_s_stream_STDDEV, __pyx_k_stream_STDDEV, sizeof(__pyx_k_stream_STDDEV), 0, 0, 1, 1}, + {&__pyx_n_s_stream_STOCH, __pyx_k_stream_STOCH, sizeof(__pyx_k_stream_STOCH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_STOCHF, __pyx_k_stream_STOCHF, sizeof(__pyx_k_stream_STOCHF), 0, 0, 1, 1}, + {&__pyx_n_s_stream_STOCHRSI, __pyx_k_stream_STOCHRSI, sizeof(__pyx_k_stream_STOCHRSI), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SUB, __pyx_k_stream_SUB, sizeof(__pyx_k_stream_SUB), 0, 0, 1, 1}, + {&__pyx_n_s_stream_SUM, __pyx_k_stream_SUM, sizeof(__pyx_k_stream_SUM), 0, 0, 1, 1}, + {&__pyx_n_s_stream_T3, __pyx_k_stream_T3, sizeof(__pyx_k_stream_T3), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TAN, __pyx_k_stream_TAN, sizeof(__pyx_k_stream_TAN), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TANH, __pyx_k_stream_TANH, sizeof(__pyx_k_stream_TANH), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TEMA, __pyx_k_stream_TEMA, sizeof(__pyx_k_stream_TEMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TRANGE, __pyx_k_stream_TRANGE, sizeof(__pyx_k_stream_TRANGE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TRIMA, __pyx_k_stream_TRIMA, sizeof(__pyx_k_stream_TRIMA), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TRIX, __pyx_k_stream_TRIX, sizeof(__pyx_k_stream_TRIX), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TSF, __pyx_k_stream_TSF, sizeof(__pyx_k_stream_TSF), 0, 0, 1, 1}, + {&__pyx_n_s_stream_TYPPRICE, __pyx_k_stream_TYPPRICE, sizeof(__pyx_k_stream_TYPPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_ULTOSC, __pyx_k_stream_ULTOSC, sizeof(__pyx_k_stream_ULTOSC), 0, 0, 1, 1}, + {&__pyx_n_s_stream_VAR, __pyx_k_stream_VAR, sizeof(__pyx_k_stream_VAR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_WCLPRICE, __pyx_k_stream_WCLPRICE, sizeof(__pyx_k_stream_WCLPRICE), 0, 0, 1, 1}, + {&__pyx_n_s_stream_WILLR, __pyx_k_stream_WILLR, sizeof(__pyx_k_stream_WILLR), 0, 0, 1, 1}, + {&__pyx_n_s_stream_WMA, __pyx_k_stream_WMA, sizeof(__pyx_k_stream_WMA), 0, 0, 1, 1}, + {&__pyx_kp_s_stream__s, __pyx_k_stream__s, sizeof(__pyx_k_stream__s), 0, 0, 1, 0}, + {&__pyx_n_s_super, __pyx_k_super, sizeof(__pyx_k_super), 0, 0, 1, 1}, + {&__pyx_n_s_sys, __pyx_k_sys, sizeof(__pyx_k_sys), 0, 0, 1, 1}, + {&__pyx_n_s_ta_check_success, __pyx_k_ta_check_success, sizeof(__pyx_k_ta_check_success), 0, 0, 1, 1}, + {&__pyx_n_s_ta_func_unst_ids, __pyx_k_ta_func_unst_ids, sizeof(__pyx_k_ta_func_unst_ids), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getFuncInfo, __pyx_k_ta_getFuncInfo, sizeof(__pyx_k_ta_getFuncInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getFuncTable, __pyx_k_ta_getFuncTable, sizeof(__pyx_k_ta_getFuncTable), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getGroupTable, __pyx_k_ta_getGroupTable, sizeof(__pyx_k_ta_getGroupTable), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getInputParameterInfo, __pyx_k_ta_getInputParameterInfo, sizeof(__pyx_k_ta_getInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getOptInputParameterInfo, __pyx_k_ta_getOptInputParameterInfo, sizeof(__pyx_k_ta_getOptInputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_getOutputParameterInfo, __pyx_k_ta_getOutputParameterInfo, sizeof(__pyx_k_ta_getOutputParameterInfo), 0, 0, 1, 1}, + {&__pyx_n_s_ta_get_compatibility, __pyx_k_ta_get_compatibility, sizeof(__pyx_k_ta_get_compatibility), 0, 0, 1, 1}, + {&__pyx_n_s_ta_get_unstable_period, __pyx_k_ta_get_unstable_period, sizeof(__pyx_k_ta_get_unstable_period), 0, 0, 1, 1}, + {&__pyx_n_s_ta_initialize, __pyx_k_ta_initialize, sizeof(__pyx_k_ta_initialize), 0, 0, 1, 1}, + {&__pyx_n_s_ta_restore_candle_default_setti, __pyx_k_ta_restore_candle_default_setti, sizeof(__pyx_k_ta_restore_candle_default_setti), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_candle_settings, __pyx_k_ta_set_candle_settings, sizeof(__pyx_k_ta_set_candle_settings), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_compatibility, __pyx_k_ta_set_compatibility, sizeof(__pyx_k_ta_set_compatibility), 0, 0, 1, 1}, + {&__pyx_n_s_ta_set_unstable_period, __pyx_k_ta_set_unstable_period, sizeof(__pyx_k_ta_set_unstable_period), 0, 0, 1, 1}, + {&__pyx_n_s_ta_shutdown, __pyx_k_ta_shutdown, sizeof(__pyx_k_ta_shutdown), 0, 0, 1, 1}, + {&__pyx_n_s_ta_version, __pyx_k_ta_version, sizeof(__pyx_k_ta_version), 0, 0, 1, 1}, + {&__pyx_n_s_table, __pyx_k_table, sizeof(__pyx_k_table), 0, 0, 1, 1}, + {&__pyx_kp_s_talib__abstract_pxi, __pyx_k_talib__abstract_pxi, sizeof(__pyx_k_talib__abstract_pxi), 0, 0, 1, 0}, + {&__pyx_kp_s_talib__common_pxi, __pyx_k_talib__common_pxi, sizeof(__pyx_k_talib__common_pxi), 0, 0, 1, 0}, + {&__pyx_kp_s_talib__func_pxi, __pyx_k_talib__func_pxi, sizeof(__pyx_k_talib__func_pxi), 0, 0, 1, 0}, + {&__pyx_kp_s_talib__stream_pxi, __pyx_k_talib__stream_pxi, sizeof(__pyx_k_talib__stream_pxi), 0, 0, 1, 0}, + {&__pyx_n_s_talib__ta_lib, __pyx_k_talib__ta_lib, sizeof(__pyx_k_talib__ta_lib), 0, 0, 1, 1}, + {&__pyx_n_s_test, __pyx_k_test, sizeof(__pyx_k_test), 0, 0, 1, 1}, + {&__pyx_n_s_threading, __pyx_k_threading, sizeof(__pyx_k_threading), 0, 0, 1, 1}, + {&__pyx_n_s_timeStamp, __pyx_k_timeStamp, sizeof(__pyx_k_timeStamp), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod, __pyx_k_timeperiod, sizeof(__pyx_k_timeperiod), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod1, __pyx_k_timeperiod1, sizeof(__pyx_k_timeperiod1), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod2, __pyx_k_timeperiod2, sizeof(__pyx_k_timeperiod2), 0, 0, 1, 1}, + {&__pyx_n_s_timeperiod3, __pyx_k_timeperiod3, sizeof(__pyx_k_timeperiod3), 0, 0, 1, 1}, + {&__pyx_n_s_to_numpy, __pyx_k_to_numpy, sizeof(__pyx_k_to_numpy), 0, 0, 1, 1}, + {&__pyx_n_s_type, __pyx_k_type, sizeof(__pyx_k_type), 0, 0, 1, 1}, + {&__pyx_n_s_type_2, __pyx_k_type_2, sizeof(__pyx_k_type_2), 0, 0, 1, 1}, + {&__pyx_n_s_unicode, __pyx_k_unicode, sizeof(__pyx_k_unicode), 0, 0, 1, 1}, + {&__pyx_n_s_update, __pyx_k_update, sizeof(__pyx_k_update), 0, 0, 1, 1}, + {&__pyx_n_s_update_info, __pyx_k_update_info, sizeof(__pyx_k_update_info), 0, 0, 1, 1}, + {&__pyx_n_s_upper, __pyx_k_upper, sizeof(__pyx_k_upper), 0, 0, 1, 1}, + {&__pyx_n_s_value, __pyx_k_value, sizeof(__pyx_k_value), 0, 0, 1, 1}, + {&__pyx_n_s_value_range, __pyx_k_value_range, sizeof(__pyx_k_value_range), 0, 0, 1, 1}, + {&__pyx_n_s_values, __pyx_k_values, sizeof(__pyx_k_values), 0, 0, 1, 1}, + {&__pyx_n_s_version, __pyx_k_version, sizeof(__pyx_k_version), 0, 0, 1, 1}, + {&__pyx_n_s_vfactor, __pyx_k_vfactor, sizeof(__pyx_k_vfactor), 0, 0, 1, 1}, + {&__pyx_n_s_volume, __pyx_k_volume, sizeof(__pyx_k_volume), 0, 0, 1, 1}, + {&__pyx_n_s_volume_data, __pyx_k_volume_data, sizeof(__pyx_k_volume_data), 0, 0, 1, 1}, + {&__pyx_n_s_xrange, __pyx_k_xrange, sizeof(__pyx_k_xrange), 0, 0, 1, 1}, + {0, 0, 0, 0, 0, 0, 0} + }; + return __Pyx_InitStrings(__pyx_string_tab); +} +/* #### Code section: cached_builtins ### */ +static CYTHON_SMALL_CODE int __Pyx_InitCachedBuiltins(void) { + __pyx_builtin_object = __Pyx_GetBuiltinName(__pyx_n_s_object); if (!__pyx_builtin_object) __PYX_ERR(0, 60, __pyx_L1_error) + __pyx_builtin_range = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_range) __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_builtin_enumerate = __Pyx_GetBuiltinName(__pyx_n_s_enumerate); if (!__pyx_builtin_enumerate) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_builtin_ImportError = __Pyx_GetBuiltinName(__pyx_n_s_ImportError); if (!__pyx_builtin_ImportError) __PYX_ERR(1, 8, __pyx_L1_error) + __pyx_builtin_NameError = __Pyx_GetBuiltinName(__pyx_n_s_NameError); if (!__pyx_builtin_NameError) __PYX_ERR(1, 43, __pyx_L1_error) + __pyx_builtin_property = __Pyx_GetBuiltinName(__pyx_n_s_property); if (!__pyx_builtin_property) __PYX_ERR(1, 130, __pyx_L1_error) + #if PY_MAJOR_VERSION >= 3 + __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_range); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) + #else + __pyx_builtin_xrange = __Pyx_GetBuiltinName(__pyx_n_s_xrange); if (!__pyx_builtin_xrange) __PYX_ERR(1, 147, __pyx_L1_error) + #endif + __pyx_builtin_IndexError = __Pyx_GetBuiltinName(__pyx_n_s_IndexError); if (!__pyx_builtin_IndexError) __PYX_ERR(1, 436, __pyx_L1_error) + __pyx_builtin_TypeError = __Pyx_GetBuiltinName(__pyx_n_s_TypeError); if (!__pyx_builtin_TypeError) __PYX_ERR(1, 440, __pyx_L1_error) + __pyx_builtin_min = __Pyx_GetBuiltinName(__pyx_n_s_min); if (!__pyx_builtin_min) __PYX_ERR(1, 598, __pyx_L1_error) + __pyx_builtin_max = __Pyx_GetBuiltinName(__pyx_n_s_max); if (!__pyx_builtin_max) __PYX_ERR(1, 599, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} +/* #### Code section: cached_constants ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitCachedConstants(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_InitCachedConstants", 0); + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1025 + * __pyx_import_array() + * except Exception: + * raise ImportError("numpy._core.multiarray failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_umath() except -1: + */ + __pyx_tuple_ = PyTuple_Pack(1, __pyx_kp_s_numpy__core_multiarray_failed_to); if (unlikely(!__pyx_tuple_)) __PYX_ERR(2, 1025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple_); + __Pyx_GIVEREF(__pyx_tuple_); + + /* "../../.virtualenvs/pydata/lib/python3.12/site-packages/numpy/__init__.cython-30.pxd":1031 + * _import_umath() + * except Exception: + * raise ImportError("numpy._core.umath failed to import") # <<<<<<<<<<<<<< + * + * cdef inline int import_ufunc() except -1: + */ + __pyx_tuple__2 = PyTuple_Pack(1, __pyx_kp_s_numpy__core_umath_failed_to_impo); if (unlikely(!__pyx_tuple__2)) __PYX_ERR(2, 1031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__2); + __Pyx_GIVEREF(__pyx_tuple__2); + + /* "talib/_func.pxi":22 + * cdef np.ndarray check_array(np.ndarray real): + * if PyArray_TYPE(real) != np.NPY_DOUBLE: + * raise Exception("input array type is not double") # <<<<<<<<<<<<<< + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") + */ + __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_input_array_type_is_not_double); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(3, 22, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__3); + __Pyx_GIVEREF(__pyx_tuple__3); + + /* "talib/_func.pxi":24 + * raise Exception("input array type is not double") + * if real.ndim != 1: + * raise Exception("input array has wrong dimensions") # <<<<<<<<<<<<<< + * if not (PyArray_FLAGS(real) & np.NPY_ARRAY_C_CONTIGUOUS): + * real = PyArray_GETCONTIGUOUS(real) + */ + __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_input_array_has_wrong_dimensions); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(3, 24, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__4); + __Pyx_GIVEREF(__pyx_tuple__4); + + /* "talib/_func.pxi":34 + * length = a1.shape[0] + * if length != a2.shape[0]: + * raise Exception("input array lengths are different") # <<<<<<<<<<<<<< + * return length + * + */ + __pyx_tuple__5 = PyTuple_Pack(1, __pyx_kp_s_input_array_lengths_are_differen); if (unlikely(!__pyx_tuple__5)) __PYX_ERR(3, 34, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__5); + __Pyx_GIVEREF(__pyx_tuple__5); + + /* "talib/_abstract.pxi":679 + * name = name[len('in'):].lower() + * if 'real' in name: + * name = name.replace('real', 'price') # <<<<<<<<<<<<<< + * elif 'price' in name: + * name = 'prices' + */ + __pyx_tuple__8 = PyTuple_Pack(2, __pyx_n_s_real, __pyx_n_s_price); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(1, 679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__8); + __Pyx_GIVEREF(__pyx_tuple__8); + + /* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ + __pyx_tuple__13 = PyTuple_Pack(2, __pyx_n_s_function_name, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__13)) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__13); + __Pyx_GIVEREF(__pyx_tuple__13); + __pyx_codeobj__14 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__13, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_check_success, 6, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__14)) __PYX_ERR(0, 6, __pyx_L1_error) + + /* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ + __pyx_tuple__15 = PyTuple_Pack(1, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__15); + __Pyx_GIVEREF(__pyx_tuple__15); + __pyx_codeobj__16 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_initialize, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__16)) __PYX_ERR(0, 50, __pyx_L1_error) + + /* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ + __pyx_codeobj__17 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__15, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_shutdown, 55, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__17)) __PYX_ERR(0, 55, __pyx_L1_error) + + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_tuple__18 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__18); + __Pyx_GIVEREF(__pyx_tuple__18); + __pyx_tuple__19 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__19); + __Pyx_GIVEREF(__pyx_tuple__19); + + /* "talib/_common.pxi":61 + * + * class MA_Type(object): + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< + * + * def __init__(self): + */ + __pyx_tuple__20 = PyTuple_Pack(1, __pyx_int_9); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__20); + __Pyx_GIVEREF(__pyx_tuple__20); + + /* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ + __pyx_tuple__21 = PyTuple_Pack(1, __pyx_n_s_self); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__21); + __Pyx_GIVEREF(__pyx_tuple__21); + __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_init, 63, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 63, __pyx_L1_error) + + /* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ + __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_type); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__23); + __Pyx_GIVEREF(__pyx_tuple__23); + __pyx_codeobj__24 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__23, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_getitem, 76, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__24)) __PYX_ERR(0, 76, __pyx_L1_error) + + /* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_tuple__25 = PyTuple_Pack(4, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_ret_code, __pyx_n_s_id); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__25); + __Pyx_GIVEREF(__pyx_tuple__25); + __pyx_codeobj__26 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__25, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_unstable_period, 90, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__26)) __PYX_ERR(0, 90, __pyx_L1_error) + + /* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_tuple__27 = PyTuple_Pack(3, __pyx_n_s_name, __pyx_n_s_period, __pyx_n_s_id); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__27); + __Pyx_GIVEREF(__pyx_tuple__27); + __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__27, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_unstable_period, 96, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 96, __pyx_L1_error) + + /* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ + __pyx_tuple__29 = PyTuple_Pack(2, __pyx_n_s_value, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__29); + __Pyx_GIVEREF(__pyx_tuple__29); + __pyx_codeobj__30 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__29, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_compatibility, 102, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__30)) __PYX_ERR(0, 102, __pyx_L1_error) + + /* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ + __pyx_tuple__31 = PyTuple_Pack(1, __pyx_n_s_value); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__31); + __Pyx_GIVEREF(__pyx_tuple__31); + __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_get_compatibility, 107, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 107, __pyx_L1_error) + + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_tuple__33 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__33)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__33); + __Pyx_GIVEREF(__pyx_tuple__33); + __pyx_tuple__34 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__34); + __Pyx_GIVEREF(__pyx_tuple__34); + + /* "talib/_common.pxi":115 + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) # <<<<<<<<<<<<<< + * + * CandleSettingType = CandleSettingType() + */ + __pyx_tuple__35 = PyTuple_Pack(1, __pyx_int_12); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__35); + __Pyx_GIVEREF(__pyx_tuple__35); + + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_tuple__36 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__36); + __Pyx_GIVEREF(__pyx_tuple__36); + __pyx_tuple__37 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__37)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__37); + __Pyx_GIVEREF(__pyx_tuple__37); + + /* "talib/_common.pxi":120 + * + * class RangeType(object): + * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< + * + * RangeType = RangeType() + */ + __pyx_tuple__38 = PyTuple_Pack(1, __pyx_int_3); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__38); + __Pyx_GIVEREF(__pyx_tuple__38); + + /* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ + __pyx_tuple__39 = PyTuple_Pack(5, __pyx_n_s_settingtype, __pyx_n_s_rangetype, __pyx_n_s_avgperiod, __pyx_n_s_factor, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__39)) __PYX_ERR(0, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__39); + __Pyx_GIVEREF(__pyx_tuple__39); + __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__39, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_set_candle_settings, 124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 124, __pyx_L1_error) + + /* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ + __pyx_tuple__41 = PyTuple_Pack(2, __pyx_n_s_settingtype, __pyx_n_s_ret_code); if (unlikely(!__pyx_tuple__41)) __PYX_ERR(0, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__41); + __Pyx_GIVEREF(__pyx_tuple__41); + __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__41, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__common_pxi, __pyx_n_s_ta_restore_candle_default_setti, 129, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 129, __pyx_L1_error) + + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ + __pyx_tuple__44 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__44); + __Pyx_GIVEREF(__pyx_tuple__44); + __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ACOS, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(3, 142, __pyx_L1_error) + + /* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__46); + __Pyx_GIVEREF(__pyx_tuple__46); + __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AD, 171, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(3, 171, __pyx_L1_error) + + /* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_tuple__48 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__48); + __Pyx_GIVEREF(__pyx_tuple__48); + __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADD, 203, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(3, 203, __pyx_L1_error) + + /* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ + __pyx_tuple__50 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__50); + __Pyx_GIVEREF(__pyx_tuple__50); + __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADOSC, 234, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(3, 234, __pyx_L1_error) + + /* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__52 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__52); + __Pyx_GIVEREF(__pyx_tuple__52); + __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADX, 269, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(3, 269, __pyx_L1_error) + + /* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ADXR, 302, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(3, 302, __pyx_L1_error) + + /* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__55 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__55)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__55); + __Pyx_GIVEREF(__pyx_tuple__55); + __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_APO, 335, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(3, 335, __pyx_L1_error) + + /* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__57 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__57)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__57); + __Pyx_GIVEREF(__pyx_tuple__57); + __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__57, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROON, 368, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(3, 368, __pyx_L1_error) + + /* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__59 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__59)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__59); + __Pyx_GIVEREF(__pyx_tuple__59); + __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AROONOSC, 403, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(3, 403, __pyx_L1_error) + + /* "talib/_func.pxi":435 + * 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 ): + */ + __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ASIN, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(3, 435, __pyx_L1_error) + + /* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ + __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATAN, 464, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(3, 464, __pyx_L1_error) + + /* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ATR, 493, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(3, 493, __pyx_L1_error) + + /* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__64 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__64)) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__64); + __Pyx_GIVEREF(__pyx_tuple__64); + __pyx_codeobj__65 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_AVGPRICE, 526, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__65)) __PYX_ERR(3, 526, __pyx_L1_error) + + /* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_tuple__66 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__66)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__66); + __Pyx_GIVEREF(__pyx_tuple__66); + __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__66, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BBANDS, 558, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(3, 558, __pyx_L1_error) + + /* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ + __pyx_tuple__68 = PyTuple_Pack(11, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__68); + __Pyx_GIVEREF(__pyx_tuple__68); + __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BETA, 598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(3, 598, __pyx_L1_error) + + /* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__64, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_BOP, 631, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(3, 631, __pyx_L1_error) + + /* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CCI, 663, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(3, 663, __pyx_L1_error) + + /* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__72 = PyTuple_Pack(12, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__72)) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__72); + __Pyx_GIVEREF(__pyx_tuple__72); + __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL2CROWS, 696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(3, 696, __pyx_L1_error) + + /* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3BLACKCROWS, 728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(3, 728, __pyx_L1_error) + + /* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3INSIDE, 760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(3, 760, __pyx_L1_error) + + /* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3LINESTRIKE, 792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(3, 792, __pyx_L1_error) + + /* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3OUTSIDE, 824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(3, 824, __pyx_L1_error) + + /* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3STARSINSOUTH, 856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(3, 856, __pyx_L1_error) + + /* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDL3WHITESOLDIERS, 888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(3, 888, __pyx_L1_error) + + /* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_tuple__80 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__80)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__80); + __Pyx_GIVEREF(__pyx_tuple__80); + __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLABANDONEDBABY, 920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(3, 920, __pyx_L1_error) + + /* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__82 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLADVANCEBLOCK, 954, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__82)) __PYX_ERR(3, 954, __pyx_L1_error) + + /* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__83 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBELTHOLD, 986, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__83)) __PYX_ERR(3, 986, __pyx_L1_error) + + /* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__84 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLBREAKAWAY, 1018, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__84)) __PYX_ERR(3, 1018, __pyx_L1_error) + + /* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__85 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCLOSINGMARUBOZU, 1050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__85)) __PYX_ERR(3, 1050, __pyx_L1_error) + + /* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__86 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCONCEALBABYSWALL, 1082, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__86)) __PYX_ERR(3, 1082, __pyx_L1_error) + + /* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__87 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLCOUNTERATTACK, 1114, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__87)) __PYX_ERR(3, 1114, __pyx_L1_error) + + /* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__88 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDARKCLOUDCOVER, 1146, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__88)) __PYX_ERR(3, 1146, __pyx_L1_error) + + /* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__89 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJI, 1180, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__89)) __PYX_ERR(3, 1180, __pyx_L1_error) + + /* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__90 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDOJISTAR, 1212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__90)) __PYX_ERR(3, 1212, __pyx_L1_error) + + /* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__91 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLDRAGONFLYDOJI, 1244, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__91)) __PYX_ERR(3, 1244, __pyx_L1_error) + + /* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__92 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLENGULFING, 1276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__92)) __PYX_ERR(3, 1276, __pyx_L1_error) + + /* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__93 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGDOJISTAR, 1308, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__93)) __PYX_ERR(3, 1308, __pyx_L1_error) + + /* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__94 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLEVENINGSTAR, 1342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__94)) __PYX_ERR(3, 1342, __pyx_L1_error) + + /* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__95 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGAPSIDESIDEWHITE, 1376, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__95)) __PYX_ERR(3, 1376, __pyx_L1_error) + + /* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__96 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLGRAVESTONEDOJI, 1408, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__96)) __PYX_ERR(3, 1408, __pyx_L1_error) + + /* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__97 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHAMMER, 1440, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__97)) __PYX_ERR(3, 1440, __pyx_L1_error) + + /* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__98 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHANGINGMAN, 1472, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__98)) __PYX_ERR(3, 1472, __pyx_L1_error) + + /* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__99 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMI, 1504, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__99)) __PYX_ERR(3, 1504, __pyx_L1_error) + + /* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__100 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHARAMICROSS, 1536, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__100)) __PYX_ERR(3, 1536, __pyx_L1_error) + + /* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__101 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIGHWAVE, 1568, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__101)) __PYX_ERR(3, 1568, __pyx_L1_error) + + /* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__102 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKE, 1600, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__102)) __PYX_ERR(3, 1600, __pyx_L1_error) + + /* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__103 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHIKKAKEMOD, 1632, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__103)) __PYX_ERR(3, 1632, __pyx_L1_error) + + /* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__104 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLHOMINGPIGEON, 1664, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__104)) __PYX_ERR(3, 1664, __pyx_L1_error) + + /* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__105 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLIDENTICAL3CROWS, 1696, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__105)) __PYX_ERR(3, 1696, __pyx_L1_error) + + /* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__106 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINNECK, 1728, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__106)) __PYX_ERR(3, 1728, __pyx_L1_error) + + /* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__107 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLINVERTEDHAMMER, 1760, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__107)) __PYX_ERR(3, 1760, __pyx_L1_error) + + /* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__108 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKING, 1792, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__108)) __PYX_ERR(3, 1792, __pyx_L1_error) + + /* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__109 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLKICKINGBYLENGTH, 1824, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__109)) __PYX_ERR(3, 1824, __pyx_L1_error) + + /* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__110 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLADDERBOTTOM, 1856, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__110)) __PYX_ERR(3, 1856, __pyx_L1_error) + + /* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__111 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLEGGEDDOJI, 1888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__111)) __PYX_ERR(3, 1888, __pyx_L1_error) + + /* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__112 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLLONGLINE, 1920, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__112)) __PYX_ERR(3, 1920, __pyx_L1_error) + + /* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__113 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMARUBOZU, 1952, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__113)) __PYX_ERR(3, 1952, __pyx_L1_error) + + /* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__114 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATCHINGLOW, 1984, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__114)) __PYX_ERR(3, 1984, __pyx_L1_error) + + /* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__115 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMATHOLD, 2016, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__115)) __PYX_ERR(3, 2016, __pyx_L1_error) + + /* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__116 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGDOJISTAR, 2050, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__116)) __PYX_ERR(3, 2050, __pyx_L1_error) + + /* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__117 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__80, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLMORNINGSTAR, 2084, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__117)) __PYX_ERR(3, 2084, __pyx_L1_error) + + /* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__118 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLONNECK, 2118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__118)) __PYX_ERR(3, 2118, __pyx_L1_error) + + /* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__119 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLPIERCING, 2150, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__119)) __PYX_ERR(3, 2150, __pyx_L1_error) + + /* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__120 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRICKSHAWMAN, 2182, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__120)) __PYX_ERR(3, 2182, __pyx_L1_error) + + /* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__121 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLRISEFALL3METHODS, 2214, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__121)) __PYX_ERR(3, 2214, __pyx_L1_error) + + /* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__122 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSEPARATINGLINES, 2246, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__122)) __PYX_ERR(3, 2246, __pyx_L1_error) + + /* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__123 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHOOTINGSTAR, 2278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__123)) __PYX_ERR(3, 2278, __pyx_L1_error) + + /* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__124 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSHORTLINE, 2310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__124)) __PYX_ERR(3, 2310, __pyx_L1_error) + + /* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__125 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSPINNINGTOP, 2342, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__125)) __PYX_ERR(3, 2342, __pyx_L1_error) + + /* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__126 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTALLEDPATTERN, 2374, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__126)) __PYX_ERR(3, 2374, __pyx_L1_error) + + /* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__127 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLSTICKSANDWICH, 2406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__127)) __PYX_ERR(3, 2406, __pyx_L1_error) + + /* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__128 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTAKURI, 2438, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__128)) __PYX_ERR(3, 2438, __pyx_L1_error) + + /* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__129 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTASUKIGAP, 2470, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__129)) __PYX_ERR(3, 2470, __pyx_L1_error) + + /* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__130 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTHRUSTING, 2502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__130)) __PYX_ERR(3, 2502, __pyx_L1_error) + + /* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__131 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLTRISTAR, 2534, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__131)) __PYX_ERR(3, 2534, __pyx_L1_error) + + /* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__132 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUNIQUE3RIVER, 2566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__132)) __PYX_ERR(3, 2566, __pyx_L1_error) + + /* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__133 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLUPSIDEGAP2CROWS, 2598, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__133)) __PYX_ERR(3, 2598, __pyx_L1_error) + + /* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__134 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__72, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CDLXSIDEGAP3METHODS, 2630, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__134)) __PYX_ERR(3, 2630, __pyx_L1_error) + + /* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ + __pyx_codeobj__135 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CEIL, 2662, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__135)) __PYX_ERR(3, 2662, __pyx_L1_error) + + /* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__136 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__136); + __Pyx_GIVEREF(__pyx_tuple__136); + __pyx_codeobj__137 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CMO, 2691, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__137)) __PYX_ERR(3, 2691, __pyx_L1_error) + + /* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__138 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__68, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_CORREL, 2722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__138)) __PYX_ERR(3, 2722, __pyx_L1_error) + + /* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ + __pyx_codeobj__139 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COS, 2755, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__139)) __PYX_ERR(3, 2755, __pyx_L1_error) + + /* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ + __pyx_codeobj__140 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_COSH, 2784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__140)) __PYX_ERR(3, 2784, __pyx_L1_error) + + /* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__141 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DEMA, 2813, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__141)) __PYX_ERR(3, 2813, __pyx_L1_error) + + /* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__142 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DIV, 2844, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__142)) __PYX_ERR(3, 2844, __pyx_L1_error) + + /* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__143 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_DX, 2875, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__143)) __PYX_ERR(3, 2875, __pyx_L1_error) + + /* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__144 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EMA, 2908, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__144)) __PYX_ERR(3, 2908, __pyx_L1_error) + + /* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ + __pyx_codeobj__145 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_EXP, 2939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__145)) __PYX_ERR(3, 2939, __pyx_L1_error) + + /* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__146 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_FLOOR, 2968, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__146)) __PYX_ERR(3, 2968, __pyx_L1_error) + + /* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_codeobj__147 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPERIOD, 2997, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__147)) __PYX_ERR(3, 2997, __pyx_L1_error) + + /* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_codeobj__148 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_DCPHASE, 3026, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__148)) __PYX_ERR(3, 3026, __pyx_L1_error) + + /* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ + __pyx_tuple__149 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__149)) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__149); + __Pyx_GIVEREF(__pyx_tuple__149); + __pyx_codeobj__150 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__149, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_PHASOR, 3055, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__150)) __PYX_ERR(3, 3055, __pyx_L1_error) + + /* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ + __pyx_tuple__151 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__151)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__151); + __Pyx_GIVEREF(__pyx_tuple__151); + __pyx_codeobj__152 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__151, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_SINE, 3087, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__152)) __PYX_ERR(3, 3087, __pyx_L1_error) + + /* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_codeobj__153 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDLINE, 3119, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__153)) __PYX_ERR(3, 3119, __pyx_L1_error) + + /* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_tuple__154 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__154)) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__154); + __Pyx_GIVEREF(__pyx_tuple__154); + __pyx_codeobj__155 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__154, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_HT_TRENDMODE, 3148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__155)) __PYX_ERR(3, 3148, __pyx_L1_error) + + /* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ + __pyx_codeobj__156 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_KAMA, 3177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__156)) __PYX_ERR(3, 3177, __pyx_L1_error) + + /* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__157 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG, 3208, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__157)) __PYX_ERR(3, 3208, __pyx_L1_error) + + /* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__158 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_ANGLE, 3239, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__158)) __PYX_ERR(3, 3239, __pyx_L1_error) + + /* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__159 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_INTERCEPT, 3270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__159)) __PYX_ERR(3, 3270, __pyx_L1_error) + + /* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__160 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LINEARREG_SLOPE, 3301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__160)) __PYX_ERR(3, 3301, __pyx_L1_error) + + /* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ + __pyx_codeobj__161 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LN, 3332, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__161)) __PYX_ERR(3, 3332, __pyx_L1_error) + + /* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ + __pyx_codeobj__162 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_LOG10, 3361, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__162)) __PYX_ERR(3, 3361, __pyx_L1_error) + + /* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__163 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__163)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__163); + __Pyx_GIVEREF(__pyx_tuple__163); + __pyx_codeobj__164 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__163, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MA, 3390, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__164)) __PYX_ERR(3, 3390, __pyx_L1_error) + + /* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + __pyx_tuple__165 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__165)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__165); + __Pyx_GIVEREF(__pyx_tuple__165); + __pyx_codeobj__166 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__165, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACD, 3422, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__166)) __PYX_ERR(3, 3422, __pyx_L1_error) + + /* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + __pyx_tuple__167 = PyTuple_Pack(17, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__167)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__167); + __Pyx_GIVEREF(__pyx_tuple__167); + __pyx_codeobj__168 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__167, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDEXT, 3461, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__168)) __PYX_ERR(3, 3461, __pyx_L1_error) + + /* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + __pyx_tuple__169 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__169)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__169); + __Pyx_GIVEREF(__pyx_tuple__169); + __pyx_codeobj__170 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__169, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MACDFIX, 3503, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__170)) __PYX_ERR(3, 3503, __pyx_L1_error) + + /* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + __pyx_tuple__171 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__171)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__171); + __Pyx_GIVEREF(__pyx_tuple__171); + __pyx_codeobj__172 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__171, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAMA, 3540, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__172)) __PYX_ERR(3, 3540, __pyx_L1_error) + + /* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__173 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__173)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__173); + __Pyx_GIVEREF(__pyx_tuple__173); + __pyx_codeobj__174 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__173, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAVP, 3575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__174)) __PYX_ERR(3, 3575, __pyx_L1_error) + + /* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__175 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAX, 3610, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__175)) __PYX_ERR(3, 3610, __pyx_L1_error) + + /* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__176 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger, __pyx_n_s_outinteger_data, __pyx_n_s_i); if (unlikely(!__pyx_tuple__176)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__176); + __Pyx_GIVEREF(__pyx_tuple__176); + __pyx_codeobj__177 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MAXINDEX, 3641, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__177)) __PYX_ERR(3, 3641, __pyx_L1_error) + + /* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ + __pyx_tuple__178 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__178)) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__178); + __Pyx_GIVEREF(__pyx_tuple__178); + __pyx_codeobj__179 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__178, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MEDPRICE, 3675, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__179)) __PYX_ERR(3, 3675, __pyx_L1_error) + + /* "talib/_func.pxi":3705 + * 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 ): + */ + __pyx_tuple__180 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__180)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__180); + __Pyx_GIVEREF(__pyx_tuple__180); + __pyx_codeobj__181 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__180, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MFI, 3705, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__181)) __PYX_ERR(3, 3705, __pyx_L1_error) + + /* "talib/_func.pxi":3739 + * 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 ): + */ + __pyx_codeobj__182 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPOINT, 3739, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__182)) __PYX_ERR(3, 3739, __pyx_L1_error) + + /* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__183 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIDPRICE, 3770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__183)) __PYX_ERR(3, 3770, __pyx_L1_error) + + /* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__184 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MIN, 3802, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__184)) __PYX_ERR(3, 3802, __pyx_L1_error) + + /* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__185 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__176, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MININDEX, 3833, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__185)) __PYX_ERR(3, 3833, __pyx_L1_error) + + /* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__186 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__186)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__186); + __Pyx_GIVEREF(__pyx_tuple__186); + __pyx_codeobj__187 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__186, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAX, 3867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__187)) __PYX_ERR(3, 3867, __pyx_L1_error) + + /* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__188 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx, __pyx_n_s_outminidx_data, __pyx_n_s_i, __pyx_n_s_outmaxidx_data); if (unlikely(!__pyx_tuple__188)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__188); + __Pyx_GIVEREF(__pyx_tuple__188); + __pyx_codeobj__189 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__188, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINMAXINDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__189)) __PYX_ERR(3, 3901, __pyx_L1_error) + + /* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__190 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DI, 3941, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__190)) __PYX_ERR(3, 3941, __pyx_L1_error) + + /* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__191 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MINUS_DM, 3974, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__191)) __PYX_ERR(3, 3974, __pyx_L1_error) + + /* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__192 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MOM, 4006, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__192)) __PYX_ERR(3, 4006, __pyx_L1_error) + + /* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__193 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_MULT, 4037, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__193)) __PYX_ERR(3, 4037, __pyx_L1_error) + + /* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__194 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_NATR, 4068, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__194)) __PYX_ERR(3, 4068, __pyx_L1_error) + + /* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + __pyx_tuple__195 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__195)) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__195); + __Pyx_GIVEREF(__pyx_tuple__195); + __pyx_codeobj__196 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__195, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_OBV, 4101, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__196)) __PYX_ERR(3, 4101, __pyx_L1_error) + + /* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__197 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DI, 4132, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__197)) __PYX_ERR(3, 4132, __pyx_L1_error) + + /* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__198 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__59, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PLUS_DM, 4165, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__198)) __PYX_ERR(3, 4165, __pyx_L1_error) + + /* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_codeobj__199 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__55, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_PPO, 4197, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__199)) __PYX_ERR(3, 4197, __pyx_L1_error) + + /* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__200 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROC, 4230, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__200)) __PYX_ERR(3, 4230, __pyx_L1_error) + + /* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__201 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCP, 4261, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__201)) __PYX_ERR(3, 4261, __pyx_L1_error) + + /* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__202 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR, 4292, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__202)) __PYX_ERR(3, 4292, __pyx_L1_error) + + /* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__203 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ROCR100, 4323, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__203)) __PYX_ERR(3, 4323, __pyx_L1_error) + + /* "talib/_func.pxi":4354 + * 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 ): + */ + __pyx_codeobj__204 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_RSI, 4354, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__204)) __PYX_ERR(3, 4354, __pyx_L1_error) + + /* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + __pyx_tuple__205 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__205)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__205); + __Pyx_GIVEREF(__pyx_tuple__205); + __pyx_codeobj__206 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__205, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAR, 4385, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__206)) __PYX_ERR(3, 4385, __pyx_L1_error) + + /* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + __pyx_tuple__207 = PyTuple_Pack(18, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__207)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__207); + __Pyx_GIVEREF(__pyx_tuple__207); + __pyx_codeobj__208 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__207, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SAREXT, 4418, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__208)) __PYX_ERR(3, 4418, __pyx_L1_error) + + /* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__209 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SIN, 4457, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__209)) __PYX_ERR(3, 4457, __pyx_L1_error) + + /* "talib/_func.pxi":4486 + * 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 ): + */ + __pyx_codeobj__210 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SINH, 4486, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__210)) __PYX_ERR(3, 4486, __pyx_L1_error) + + /* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__211 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SMA, 4515, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__211)) __PYX_ERR(3, 4515, __pyx_L1_error) + + /* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ + __pyx_codeobj__212 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SQRT, 4546, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__212)) __PYX_ERR(3, 4546, __pyx_L1_error) + + /* "talib/_func.pxi":4575 + * 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 ): + */ + __pyx_tuple__213 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__213)) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__213); + __Pyx_GIVEREF(__pyx_tuple__213); + __pyx_codeobj__214 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STDDEV, 4575, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__214)) __PYX_ERR(3, 4575, __pyx_L1_error) + + /* "talib/_func.pxi":4607 + * 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 ): + */ + __pyx_tuple__215 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__215)) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__215); + __Pyx_GIVEREF(__pyx_tuple__215); + __pyx_codeobj__216 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__215, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCH, 4607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__216)) __PYX_ERR(3, 4607, __pyx_L1_error) + + /* "talib/_func.pxi":4647 + * 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 ): + */ + __pyx_tuple__217 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__217)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__217); + __Pyx_GIVEREF(__pyx_tuple__217); + __pyx_codeobj__218 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__217, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHF, 4647, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__218)) __PYX_ERR(3, 4647, __pyx_L1_error) + + /* "talib/_func.pxi":4685 + * 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 ): + */ + __pyx_tuple__219 = PyTuple_Pack(14, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__219)) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__219); + __Pyx_GIVEREF(__pyx_tuple__219); + __pyx_codeobj__220 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__219, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_STOCHRSI, 4685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__220)) __PYX_ERR(3, 4685, __pyx_L1_error) + + /* "talib/_func.pxi":4722 + * 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 ): + */ + __pyx_codeobj__221 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUB, 4722, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__221)) __PYX_ERR(3, 4722, __pyx_L1_error) + + /* "talib/_func.pxi":4753 + * 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 ): + */ + __pyx_codeobj__222 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_SUM, 4753, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__222)) __PYX_ERR(3, 4753, __pyx_L1_error) + + /* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + __pyx_tuple__223 = PyTuple_Pack(11, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__223)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__223); + __Pyx_GIVEREF(__pyx_tuple__223); + __pyx_codeobj__224 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__223, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_T3, 4784, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__224)) __PYX_ERR(3, 4784, __pyx_L1_error) + + /* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ + __pyx_codeobj__225 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TAN, 4816, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__225)) __PYX_ERR(3, 4816, __pyx_L1_error) + + /* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ + __pyx_codeobj__226 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TANH, 4845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__226)) __PYX_ERR(3, 4845, __pyx_L1_error) + + /* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__227 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TEMA, 4874, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__227)) __PYX_ERR(3, 4874, __pyx_L1_error) + + /* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__228 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__228)) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__228); + __Pyx_GIVEREF(__pyx_tuple__228); + __pyx_codeobj__229 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRANGE, 4905, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__229)) __PYX_ERR(3, 4905, __pyx_L1_error) + + /* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__230 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIMA, 4936, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__230)) __PYX_ERR(3, 4936, __pyx_L1_error) + + /* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__231 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TRIX, 4967, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__231)) __PYX_ERR(3, 4967, __pyx_L1_error) + + /* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__232 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TSF, 4998, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__232)) __PYX_ERR(3, 4998, __pyx_L1_error) + + /* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__233 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_TYPPRICE, 5029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__233)) __PYX_ERR(3, 5029, __pyx_L1_error) + + /* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + __pyx_tuple__234 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_begidx, __pyx_n_s_endidx, __pyx_n_s_lookback, __pyx_n_s_retCode, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__234)) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__234); + __Pyx_GIVEREF(__pyx_tuple__234); + __pyx_codeobj__235 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__234, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_ULTOSC, 5060, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__235)) __PYX_ERR(3, 5060, __pyx_L1_error) + + /* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_codeobj__236 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__213, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_VAR, 5095, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__236)) __PYX_ERR(3, 5095, __pyx_L1_error) + + /* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ + __pyx_codeobj__237 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__228, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WCLPRICE, 5127, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__237)) __PYX_ERR(3, 5127, __pyx_L1_error) + + /* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__238 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WILLR, 5158, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__238)) __PYX_ERR(3, 5158, __pyx_L1_error) + + /* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__239 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__func_pxi, __pyx_n_s_WMA, 5191, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__239)) __PYX_ERR(3, 5191, __pyx_L1_error) + + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ + __pyx_tuple__241 = PyTuple_Pack(1, __pyx_n_s_s); if (unlikely(!__pyx_tuple__241)) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__241); + __Pyx_GIVEREF(__pyx_tuple__241); + __pyx_codeobj__242 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 74, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__242)) __PYX_ERR(1, 74, __pyx_L1_error) + + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ + __pyx_tuple__243 = PyTuple_Pack(1, __pyx_n_s_b); if (unlikely(!__pyx_tuple__243)) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__243); + __Pyx_GIVEREF(__pyx_tuple__243); + __pyx_codeobj__244 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 77, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__244)) __PYX_ERR(1, 77, __pyx_L1_error) + + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ + __pyx_codeobj__245 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__241, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str2bytes, 82, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__245)) __PYX_ERR(1, 82, __pyx_L1_error) + + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ + __pyx_codeobj__246 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__243, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_bytes2str, 85, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__246)) __PYX_ERR(1, 85, __pyx_L1_error) + + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_tuple__247 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__247)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__247); + __Pyx_GIVEREF(__pyx_tuple__247); + __pyx_tuple__248 = PyTuple_Pack(1, __pyx_builtin_object); if (unlikely(!__pyx_tuple__248)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__248); + __Pyx_GIVEREF(__pyx_tuple__248); + + /* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ + __pyx_tuple__249 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_function_name, __pyx_n_s_func_object, __pyx_n_s_args, __pyx_n_s_kwargs); if (unlikely(!__pyx_tuple__249)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__249); + __Pyx_GIVEREF(__pyx_tuple__249); + __pyx_codeobj__250 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__249, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_init, 117, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__250)) __PYX_ERR(1, 117, __pyx_L1_error) + + /* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ + __pyx_tuple__251 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_i, __pyx_n_s_info, __pyx_n_s_input_name, __pyx_n_s_param_name, __pyx_n_s_output_name); if (unlikely(!__pyx_tuple__251)) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__251); + __Pyx_GIVEREF(__pyx_tuple__251); + __pyx_codeobj__252 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__251, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_local_2, 130, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__252)) __PYX_ERR(1, 130, __pyx_L1_error) + + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ + __pyx_codeobj__253 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_info, 172, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__253)) __PYX_ERR(1, 172, __pyx_L1_error) + + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ + __pyx_codeobj__254 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_function_flags, 179, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__254)) __PYX_ERR(1, 179, __pyx_L1_error) + + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ + __pyx_codeobj__255 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_flags, 186, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__255)) __PYX_ERR(1, 186, __pyx_L1_error) + + /* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ + __pyx_tuple__256 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_input_name); if (unlikely(!__pyx_tuple__256)) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__256); + __Pyx_GIVEREF(__pyx_tuple__256); + __pyx_codeobj__257 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__256, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_names, 193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__257)) __PYX_ERR(1, 193, __pyx_L1_error) + + /* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ + __pyx_tuple__258 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_input_names, __pyx_n_s_local, __pyx_n_s_input_name, __pyx_n_s_price_series); if (unlikely(!__pyx_tuple__258)) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__258); + __Pyx_GIVEREF(__pyx_tuple__258); + __pyx_codeobj__259 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__258, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_names, 204, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__259)) __PYX_ERR(1, 204, __pyx_L1_error) + + /* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ + __pyx_tuple__260 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_local); if (unlikely(!__pyx_tuple__260)) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__260); + __Pyx_GIVEREF(__pyx_tuple__260); + __pyx_codeobj__261 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__260, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_input_arrays, 216, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__261)) __PYX_ERR(1, 216, __pyx_L1_error) + + /* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ + __pyx_tuple__262 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_input_arrays, __pyx_n_s_local, __pyx_n_s_missing_keys, __pyx_n_s_key, __pyx_n_s_missing); if (unlikely(!__pyx_tuple__262)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__262); + __Pyx_GIVEREF(__pyx_tuple__262); + __pyx_codeobj__263 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__262, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_input_arrays, 227, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__263)) __PYX_ERR(1, 227, __pyx_L1_error) + + /* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ + __pyx_tuple__264 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_opt_input); if (unlikely(!__pyx_tuple__264)) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__264); + __Pyx_GIVEREF(__pyx_tuple__264); + __pyx_codeobj__265 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__264, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_parameters, 276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__265)) __PYX_ERR(1, 276, __pyx_L1_error) + + /* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ + __pyx_tuple__266 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_parameters, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_param, __pyx_n_s_value); if (unlikely(!__pyx_tuple__266)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__266); + __Pyx_GIVEREF(__pyx_tuple__266); + __pyx_codeobj__267 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__266, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_parameters, 286, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__267)) __PYX_ERR(1, 286, __pyx_L1_error) + __pyx_tuple__268 = PyTuple_Pack(1, Py_None); if (unlikely(!__pyx_tuple__268)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__268); + __Pyx_GIVEREF(__pyx_tuple__268); + + /* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ + __pyx_tuple__269 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_update_info, __pyx_n_s_key, __pyx_n_s_value, __pyx_n_s_skip_first, __pyx_n_s_i, __pyx_n_s_param_name); if (unlikely(!__pyx_tuple__269)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__269); + __Pyx_GIVEREF(__pyx_tuple__269); + __pyx_codeobj__270 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__269, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_set_function_args, 301, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__270)) __PYX_ERR(1, 301, __pyx_L1_error) + + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ + __pyx_tuple__271 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_holder, __pyx_n_s_i, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_type, __pyx_n_s_lookback); if (unlikely(!__pyx_tuple__271)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__271); + __Pyx_GIVEREF(__pyx_tuple__271); + __pyx_codeobj__272 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__271, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_lookback, 336, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__272)) __PYX_ERR(1, 336, __pyx_L1_error) + + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ + __pyx_tuple__273 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_ret); if (unlikely(!__pyx_tuple__273)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__273); + __Pyx_GIVEREF(__pyx_tuple__273); + __pyx_codeobj__274 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__273, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_output_names, 357, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__274)) __PYX_ERR(1, 357, __pyx_L1_error) + + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ + __pyx_tuple__275 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_ret, __pyx_n_s_index); if (unlikely(!__pyx_tuple__275)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__275); + __Pyx_GIVEREF(__pyx_tuple__275); + __pyx_codeobj__276 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__275, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_outputs, 367, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__276)) __PYX_ERR(1, 367, __pyx_L1_error) + + /* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ + __pyx_tuple__277 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_input_arrays); if (unlikely(!__pyx_tuple__277)) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__277); + __Pyx_GIVEREF(__pyx_tuple__277); + __pyx_codeobj__278 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__277, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_run, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__278)) __PYX_ERR(1, 399, __pyx_L1_error) + + /* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ + __pyx_tuple__279 = PyTuple_Pack(16, __pyx_n_s_self, __pyx_n_s_args, __pyx_n_s_kwargs, __pyx_n_s_local, __pyx_n_s_opt_input_values, __pyx_n_s_price_series_name_values, __pyx_n_s_input_arrays, __pyx_n_s_input_price_series_names, __pyx_n_s_i, __pyx_n_s_arg, __pyx_n_s_msg, __pyx_n_s_no_existing_input_arrays, __pyx_n_s_param_name, __pyx_n_s_value, __pyx_n_s_input_name, __pyx_n_s_n); if (unlikely(!__pyx_tuple__279)) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__279); + __Pyx_GIVEREF(__pyx_tuple__279); + __pyx_codeobj__280 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 16, 0, CO_OPTIMIZED|CO_NEWLOCALS|CO_VARARGS|CO_VARKEYWORDS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__279, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call, 411, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__280)) __PYX_ERR(1, 411, __pyx_L1_error) + + /* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ + __pyx_tuple__281 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_input_name, __pyx_n_s_price_series, __pyx_n_s_name); if (unlikely(!__pyx_tuple__281)) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__281); + __Pyx_GIVEREF(__pyx_tuple__281); + __pyx_codeobj__282 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__281, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_input_price_series_names_2, 477, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__282)) __PYX_ERR(1, 477, __pyx_L1_error) + + /* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ + __pyx_tuple__283 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_local, __pyx_n_s_input_price_series_names, __pyx_n_s_args, __pyx_n_s_price_series, __pyx_n_s_series, __pyx_n_s_opt_input, __pyx_n_s_value, __pyx_n_s_results, __pyx_n_s_keys, __pyx_n_s_i, __pyx_n_s_output); if (unlikely(!__pyx_tuple__283)) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__283); + __Pyx_GIVEREF(__pyx_tuple__283); + __pyx_codeobj__284 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__283, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_call_function, 489, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__284)) __PYX_ERR(1, 489, __pyx_L1_error) + + /* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ + __pyx_tuple__285 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_type); if (unlikely(!__pyx_tuple__285)) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__285); + __Pyx_GIVEREF(__pyx_tuple__285); + __pyx_codeobj__286 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__285, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_check_opt_input_value, 520, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__286)) __PYX_ERR(1, 520, __pyx_L1_error) + + /* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ + __pyx_tuple__287 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_input_name, __pyx_n_s_local, __pyx_n_s_value); if (unlikely(!__pyx_tuple__287)) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__287); + __Pyx_GIVEREF(__pyx_tuple__287); + __pyx_codeobj__288 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__287, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_opt_input_value, 535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__288)) __PYX_ERR(1, 535, __pyx_L1_error) + + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ + __pyx_codeobj__289 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_repr, 545, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__289)) __PYX_ERR(1, 545, __pyx_L1_error) + + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ + __pyx_codeobj__290 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_unicode, 548, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__290)) __PYX_ERR(1, 548, __pyx_L1_error) + + /* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ + __pyx_codeobj__291 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 1, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__21, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_str, 551, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__291)) __PYX_ERR(1, 551, __pyx_L1_error) + + /* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ + __pyx_tuple__292 = PyTuple_Pack(3, __pyx_n_s_table, __pyx_n_s_groups, __pyx_n_s_i); if (unlikely(!__pyx_tuple__292)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__292); + __Pyx_GIVEREF(__pyx_tuple__292); + __pyx_codeobj__293 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__292, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getGroupTable, 565, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__293)) __PYX_ERR(1, 565, __pyx_L1_error) + + /* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ + __pyx_tuple__294 = PyTuple_Pack(4, __pyx_n_s_group, __pyx_n_s_table, __pyx_n_s_functions, __pyx_n_s_i); if (unlikely(!__pyx_tuple__294)) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__294); + __Pyx_GIVEREF(__pyx_tuple__294); + __pyx_codeobj__295 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__294, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncTable, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__295)) __PYX_ERR(1, 577, __pyx_L1_error) + + /* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ + __pyx_tuple__296 = PyTuple_Pack(7, __pyx_n_s_flag, __pyx_n_s_flags_lookup_dict, __pyx_n_s_value_range, __pyx_n_s_min_int, __pyx_n_s_max_int, __pyx_n_s_ret, __pyx_n_s_i); if (unlikely(!__pyx_tuple__296)) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__296); + __Pyx_GIVEREF(__pyx_tuple__296); + __pyx_codeobj__297 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__296, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_flags, 589, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__297)) __PYX_ERR(1, 589, __pyx_L1_error) + + /* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ + __pyx_tuple__298 = PyTuple_Pack(3, __pyx_n_s_function_name, __pyx_n_s_info, __pyx_n_s_retCode); if (unlikely(!__pyx_tuple__298)) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__298); + __Pyx_GIVEREF(__pyx_tuple__298); + __pyx_codeobj__299 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__298, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getFuncInfo, 648, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__299)) __PYX_ERR(1, 648, __pyx_L1_error) + + /* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ + __pyx_tuple__300 = PyTuple_Pack(5, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name); if (unlikely(!__pyx_tuple__300)) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__300); + __Pyx_GIVEREF(__pyx_tuple__300); + __pyx_codeobj__301 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getInputParameterInfo, 667, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__301)) __PYX_ERR(1, 667, __pyx_L1_error) + + /* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ + __pyx_tuple__302 = PyTuple_Pack(6, __pyx_n_s_function_name, __pyx_n_s_idx, __pyx_n_s_info, __pyx_n_s_retCode, __pyx_n_s_name, __pyx_n_s_default_value); if (unlikely(!__pyx_tuple__302)) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__302); + __Pyx_GIVEREF(__pyx_tuple__302); + __pyx_codeobj__303 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__302, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOptInputParameterInfo, 688, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__303)) __PYX_ERR(1, 688, __pyx_L1_error) + + /* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ + __pyx_codeobj__304 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__300, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_ta_getOutputParameterInfo, 712, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__304)) __PYX_ERR(1, 712, __pyx_L1_error) + + /* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ + __pyx_tuple__305 = PyTuple_Pack(13, __pyx_n_s_func_info, __pyx_n_s_defaults, __pyx_n_s_func_line, __pyx_n_s_func_args, __pyx_n_s_docs, __pyx_n_s_input_names, __pyx_n_s_input_name, __pyx_n_s_value, __pyx_n_s_params, __pyx_n_s_param, __pyx_n_s_outputs, __pyx_n_s_output, __pyx_n_s_documentation); if (unlikely(!__pyx_tuple__305)) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__305); + __Pyx_GIVEREF(__pyx_tuple__305); + __pyx_codeobj__306 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__305, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__abstract_pxi, __pyx_n_s_get_defaults_and_docs, 732, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__306)) __PYX_ERR(1, 732, __pyx_L1_error) + + /* "talib/_stream.pxi":9 + * np.import_array() # Initialize the NumPy C API + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ACOS( np.ndarray real not None ): + */ + __pyx_tuple__307 = PyTuple_Pack(7, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__307)) __PYX_ERR(4, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__307); + __Pyx_GIVEREF(__pyx_tuple__307); + __pyx_codeobj__308 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ACOS, 9, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__308)) __PYX_ERR(4, 9, __pyx_L1_error) + + /* "talib/_stream.pxi":36 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_tuple__309 = PyTuple_Pack(13, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__309)) __PYX_ERR(4, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__309); + __Pyx_GIVEREF(__pyx_tuple__309); + __pyx_codeobj__310 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__309, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AD, 36, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__310)) __PYX_ERR(4, 36, __pyx_L1_error) + + /* "talib/_stream.pxi":72 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_tuple__311 = PyTuple_Pack(9, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real0_data, __pyx_n_s_real1_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__311)) __PYX_ERR(4, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__311); + __Pyx_GIVEREF(__pyx_tuple__311); + __pyx_codeobj__312 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADD, 72, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__312)) __PYX_ERR(4, 72, __pyx_L1_error) + + /* "talib/_stream.pxi":103 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADOSC( 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 ): + */ + __pyx_tuple__313 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__313)) __PYX_ERR(4, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__313); + __Pyx_GIVEREF(__pyx_tuple__313); + __pyx_codeobj__314 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__313, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADOSC, 103, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__314)) __PYX_ERR(4, 103, __pyx_L1_error) + + /* "talib/_stream.pxi":142 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__315 = PyTuple_Pack(12, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__315)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__315); + __Pyx_GIVEREF(__pyx_tuple__315); + __pyx_codeobj__316 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADX, 142, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__316)) __PYX_ERR(4, 142, __pyx_L1_error) + + /* "talib/_stream.pxi":177 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__317 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ADXR, 177, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__317)) __PYX_ERR(4, 177, __pyx_L1_error) + + /* "talib/_stream.pxi":212 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__318 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__318)) __PYX_ERR(4, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__318); + __Pyx_GIVEREF(__pyx_tuple__318); + __pyx_codeobj__319 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_APO, 212, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__319)) __PYX_ERR(4, 212, __pyx_L1_error) + + /* "talib/_stream.pxi":243 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__320 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outaroondown, __pyx_n_s_outaroonup); if (unlikely(!__pyx_tuple__320)) __PYX_ERR(4, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__320); + __Pyx_GIVEREF(__pyx_tuple__320); + __pyx_codeobj__321 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__320, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROON, 243, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__321)) __PYX_ERR(4, 243, __pyx_L1_error) + + /* "talib/_stream.pxi":278 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__322 = PyTuple_Pack(10, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__322)) __PYX_ERR(4, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__322); + __Pyx_GIVEREF(__pyx_tuple__322); + __pyx_codeobj__323 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AROONOSC, 278, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__323)) __PYX_ERR(4, 278, __pyx_L1_error) + + /* "talib/_stream.pxi":310 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ASIN( np.ndarray real not None ): + */ + __pyx_codeobj__324 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ASIN, 310, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__324)) __PYX_ERR(4, 310, __pyx_L1_error) + + /* "talib/_stream.pxi":337 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ATAN( np.ndarray real not None ): + */ + __pyx_codeobj__325 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ATAN, 337, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__325)) __PYX_ERR(4, 337, __pyx_L1_error) + + /* "talib/_stream.pxi":364 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__326 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ATR, 364, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__326)) __PYX_ERR(4, 364, __pyx_L1_error) + + /* "talib/_stream.pxi":399 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__327 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__327)) __PYX_ERR(4, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__327); + __Pyx_GIVEREF(__pyx_tuple__327); + __pyx_codeobj__328 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_AVGPRICE, 399, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__328)) __PYX_ERR(4, 399, __pyx_L1_error) + + /* "talib/_stream.pxi":435 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_tuple__329 = PyTuple_Pack(13, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdevup, __pyx_n_s_nbdevdn, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outrealupperband, __pyx_n_s_outrealmiddleband, __pyx_n_s_outreallowerband); if (unlikely(!__pyx_tuple__329)) __PYX_ERR(4, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__329); + __Pyx_GIVEREF(__pyx_tuple__329); + __pyx_codeobj__330 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__329, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BBANDS, 435, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__330)) __PYX_ERR(4, 435, __pyx_L1_error) + + /* "talib/_stream.pxi":473 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__331 = PyTuple_Pack(10, __pyx_n_s_real0, __pyx_n_s_real1, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real0_data, __pyx_n_s_real1_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__331)) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__331); + __Pyx_GIVEREF(__pyx_tuple__331); + __pyx_codeobj__332 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BETA, 473, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__332)) __PYX_ERR(4, 473, __pyx_L1_error) + + /* "talib/_stream.pxi":506 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__333 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__327, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_BOP, 506, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__333)) __PYX_ERR(4, 506, __pyx_L1_error) + + /* "talib/_stream.pxi":542 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__334 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CCI, 542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__334)) __PYX_ERR(4, 542, __pyx_L1_error) + + /* "talib/_stream.pxi":577 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__335 = PyTuple_Pack(13, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__335)) __PYX_ERR(4, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__335); + __Pyx_GIVEREF(__pyx_tuple__335); + __pyx_codeobj__336 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL2CROWS, 577, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__336)) __PYX_ERR(4, 577, __pyx_L1_error) + + /* "talib/_stream.pxi":613 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__337 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3BLACKCROWS, 613, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__337)) __PYX_ERR(4, 613, __pyx_L1_error) + + /* "talib/_stream.pxi":649 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__338 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3INSIDE, 649, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__338)) __PYX_ERR(4, 649, __pyx_L1_error) + + /* "talib/_stream.pxi":685 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__339 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3LINESTRIKE, 685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__339)) __PYX_ERR(4, 685, __pyx_L1_error) + + /* "talib/_stream.pxi":721 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__340 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3OUTSIDE, 721, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__340)) __PYX_ERR(4, 721, __pyx_L1_error) + + /* "talib/_stream.pxi":757 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__341 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3STARSINSOUTH, 757, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__341)) __PYX_ERR(4, 757, __pyx_L1_error) + + /* "talib/_stream.pxi":793 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__342 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDL3WHITESOLDIERS, 793, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__342)) __PYX_ERR(4, 793, __pyx_L1_error) + + /* "talib/_stream.pxi":829 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_tuple__343 = PyTuple_Pack(14, __pyx_n_s_open, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_penetration, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_open_data, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__343)) __PYX_ERR(4, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__343); + __Pyx_GIVEREF(__pyx_tuple__343); + __pyx_codeobj__344 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLABANDONEDBABY, 829, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__344)) __PYX_ERR(4, 829, __pyx_L1_error) + + /* "talib/_stream.pxi":867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__345 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLADVANCEBLOCK, 867, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__345)) __PYX_ERR(4, 867, __pyx_L1_error) + + /* "talib/_stream.pxi":903 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__346 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBELTHOLD, 903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__346)) __PYX_ERR(4, 903, __pyx_L1_error) + + /* "talib/_stream.pxi":939 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__347 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLBREAKAWAY, 939, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__347)) __PYX_ERR(4, 939, __pyx_L1_error) + + /* "talib/_stream.pxi":975 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__348 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, 975, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__348)) __PYX_ERR(4, 975, __pyx_L1_error) + + /* "talib/_stream.pxi":1011 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__349 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCONCEALBABYSWALL, 1011, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__349)) __PYX_ERR(4, 1011, __pyx_L1_error) + + /* "talib/_stream.pxi":1047 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__350 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLCOUNTERATTACK, 1047, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__350)) __PYX_ERR(4, 1047, __pyx_L1_error) + + /* "talib/_stream.pxi":1083 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__351 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDARKCLOUDCOVER, 1083, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__351)) __PYX_ERR(4, 1083, __pyx_L1_error) + + /* "talib/_stream.pxi":1121 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__352 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJI, 1121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__352)) __PYX_ERR(4, 1121, __pyx_L1_error) + + /* "talib/_stream.pxi":1157 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__353 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDOJISTAR, 1157, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__353)) __PYX_ERR(4, 1157, __pyx_L1_error) + + /* "talib/_stream.pxi":1193 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__354 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLDRAGONFLYDOJI, 1193, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__354)) __PYX_ERR(4, 1193, __pyx_L1_error) + + /* "talib/_stream.pxi":1229 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__355 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLENGULFING, 1229, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__355)) __PYX_ERR(4, 1229, __pyx_L1_error) + + /* "talib/_stream.pxi":1265 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__356 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGDOJISTAR, 1265, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__356)) __PYX_ERR(4, 1265, __pyx_L1_error) + + /* "talib/_stream.pxi":1303 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__357 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLEVENINGSTAR, 1303, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__357)) __PYX_ERR(4, 1303, __pyx_L1_error) + + /* "talib/_stream.pxi":1341 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__358 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, 1341, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__358)) __PYX_ERR(4, 1341, __pyx_L1_error) + + /* "talib/_stream.pxi":1377 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__359 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLGRAVESTONEDOJI, 1377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__359)) __PYX_ERR(4, 1377, __pyx_L1_error) + + /* "talib/_stream.pxi":1413 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__360 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHAMMER, 1413, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__360)) __PYX_ERR(4, 1413, __pyx_L1_error) + + /* "talib/_stream.pxi":1449 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__361 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHANGINGMAN, 1449, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__361)) __PYX_ERR(4, 1449, __pyx_L1_error) + + /* "talib/_stream.pxi":1485 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__362 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMI, 1485, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__362)) __PYX_ERR(4, 1485, __pyx_L1_error) + + /* "talib/_stream.pxi":1521 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__363 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHARAMICROSS, 1521, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__363)) __PYX_ERR(4, 1521, __pyx_L1_error) + + /* "talib/_stream.pxi":1557 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__364 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIGHWAVE, 1557, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__364)) __PYX_ERR(4, 1557, __pyx_L1_error) + + /* "talib/_stream.pxi":1593 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__365 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKE, 1593, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__365)) __PYX_ERR(4, 1593, __pyx_L1_error) + + /* "talib/_stream.pxi":1629 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__366 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHIKKAKEMOD, 1629, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__366)) __PYX_ERR(4, 1629, __pyx_L1_error) + + /* "talib/_stream.pxi":1665 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__367 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLHOMINGPIGEON, 1665, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__367)) __PYX_ERR(4, 1665, __pyx_L1_error) + + /* "talib/_stream.pxi":1701 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__368 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLIDENTICAL3CROWS, 1701, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__368)) __PYX_ERR(4, 1701, __pyx_L1_error) + + /* "talib/_stream.pxi":1737 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__369 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINNECK, 1737, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__369)) __PYX_ERR(4, 1737, __pyx_L1_error) + + /* "talib/_stream.pxi":1773 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__370 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLINVERTEDHAMMER, 1773, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__370)) __PYX_ERR(4, 1773, __pyx_L1_error) + + /* "talib/_stream.pxi":1809 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__371 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKING, 1809, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__371)) __PYX_ERR(4, 1809, __pyx_L1_error) + + /* "talib/_stream.pxi":1845 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__372 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLKICKINGBYLENGTH, 1845, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__372)) __PYX_ERR(4, 1845, __pyx_L1_error) + + /* "talib/_stream.pxi":1881 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__373 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLADDERBOTTOM, 1881, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__373)) __PYX_ERR(4, 1881, __pyx_L1_error) + + /* "talib/_stream.pxi":1917 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__374 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, 1917, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__374)) __PYX_ERR(4, 1917, __pyx_L1_error) + + /* "talib/_stream.pxi":1953 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__375 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLLONGLINE, 1953, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__375)) __PYX_ERR(4, 1953, __pyx_L1_error) + + /* "talib/_stream.pxi":1989 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__376 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMARUBOZU, 1989, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__376)) __PYX_ERR(4, 1989, __pyx_L1_error) + + /* "talib/_stream.pxi":2025 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__377 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATCHINGLOW, 2025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__377)) __PYX_ERR(4, 2025, __pyx_L1_error) + + /* "talib/_stream.pxi":2061 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_codeobj__378 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMATHOLD, 2061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__378)) __PYX_ERR(4, 2061, __pyx_L1_error) + + /* "talib/_stream.pxi":2099 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__379 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGDOJISTAR, 2099, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__379)) __PYX_ERR(4, 2099, __pyx_L1_error) + + /* "talib/_stream.pxi":2137 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_codeobj__380 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__343, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLMORNINGSTAR, 2137, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__380)) __PYX_ERR(4, 2137, __pyx_L1_error) + + /* "talib/_stream.pxi":2175 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__381 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLONNECK, 2175, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__381)) __PYX_ERR(4, 2175, __pyx_L1_error) + + /* "talib/_stream.pxi":2211 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__382 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLPIERCING, 2211, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__382)) __PYX_ERR(4, 2211, __pyx_L1_error) + + /* "talib/_stream.pxi":2247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__383 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRICKSHAWMAN, 2247, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__383)) __PYX_ERR(4, 2247, __pyx_L1_error) + + /* "talib/_stream.pxi":2283 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__384 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLRISEFALL3METHODS, 2283, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__384)) __PYX_ERR(4, 2283, __pyx_L1_error) + + /* "talib/_stream.pxi":2319 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__385 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSEPARATINGLINES, 2319, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__385)) __PYX_ERR(4, 2319, __pyx_L1_error) + + /* "talib/_stream.pxi":2355 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__386 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHOOTINGSTAR, 2355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__386)) __PYX_ERR(4, 2355, __pyx_L1_error) + + /* "talib/_stream.pxi":2391 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__387 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSHORTLINE, 2391, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__387)) __PYX_ERR(4, 2391, __pyx_L1_error) + + /* "talib/_stream.pxi":2427 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__388 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSPINNINGTOP, 2427, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__388)) __PYX_ERR(4, 2427, __pyx_L1_error) + + /* "talib/_stream.pxi":2463 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__389 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTALLEDPATTERN, 2463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__389)) __PYX_ERR(4, 2463, __pyx_L1_error) + + /* "talib/_stream.pxi":2499 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__390 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLSTICKSANDWICH, 2499, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__390)) __PYX_ERR(4, 2499, __pyx_L1_error) + + /* "talib/_stream.pxi":2535 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__391 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTAKURI, 2535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__391)) __PYX_ERR(4, 2535, __pyx_L1_error) + + /* "talib/_stream.pxi":2571 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__392 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTASUKIGAP, 2571, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__392)) __PYX_ERR(4, 2571, __pyx_L1_error) + + /* "talib/_stream.pxi":2607 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__393 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTHRUSTING, 2607, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__393)) __PYX_ERR(4, 2607, __pyx_L1_error) + + /* "talib/_stream.pxi":2643 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__394 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLTRISTAR, 2643, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__394)) __PYX_ERR(4, 2643, __pyx_L1_error) + + /* "talib/_stream.pxi":2679 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__395 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUNIQUE3RIVER, 2679, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__395)) __PYX_ERR(4, 2679, __pyx_L1_error) + + /* "talib/_stream.pxi":2715 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__396 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, 2715, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__396)) __PYX_ERR(4, 2715, __pyx_L1_error) + + /* "talib/_stream.pxi":2751 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__397 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__335, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, 2751, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__397)) __PYX_ERR(4, 2751, __pyx_L1_error) + + /* "talib/_stream.pxi":2787 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CEIL( np.ndarray real not None ): + */ + __pyx_codeobj__398 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CEIL, 2787, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__398)) __PYX_ERR(4, 2787, __pyx_L1_error) + + /* "talib/_stream.pxi":2814 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__399 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__399)) __PYX_ERR(4, 2814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__399); + __Pyx_GIVEREF(__pyx_tuple__399); + __pyx_codeobj__400 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CMO, 2814, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__400)) __PYX_ERR(4, 2814, __pyx_L1_error) + + /* "talib/_stream.pxi":2843 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__401 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__331, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_CORREL, 2843, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__401)) __PYX_ERR(4, 2843, __pyx_L1_error) + + /* "talib/_stream.pxi":2876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COS( np.ndarray real not None ): + */ + __pyx_codeobj__402 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COS, 2876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__402)) __PYX_ERR(4, 2876, __pyx_L1_error) + + /* "talib/_stream.pxi":2903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COSH( np.ndarray real not None ): + */ + __pyx_codeobj__403 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_COSH, 2903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__403)) __PYX_ERR(4, 2903, __pyx_L1_error) + + /* "talib/_stream.pxi":2930 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__404 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DEMA, 2930, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__404)) __PYX_ERR(4, 2930, __pyx_L1_error) + + /* "talib/_stream.pxi":2959 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__405 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DIV, 2959, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__405)) __PYX_ERR(4, 2959, __pyx_L1_error) + + /* "talib/_stream.pxi":2990 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__406 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_DX, 2990, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__406)) __PYX_ERR(4, 2990, __pyx_L1_error) + + /* "talib/_stream.pxi":3025 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__407 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EMA, 3025, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__407)) __PYX_ERR(4, 3025, __pyx_L1_error) + + /* "talib/_stream.pxi":3054 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EXP( np.ndarray real not None ): + */ + __pyx_codeobj__408 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_EXP, 3054, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__408)) __PYX_ERR(4, 3054, __pyx_L1_error) + + /* "talib/_stream.pxi":3081 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_FLOOR( np.ndarray real not None ): + */ + __pyx_codeobj__409 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_FLOOR, 3081, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__409)) __PYX_ERR(4, 3081, __pyx_L1_error) + + /* "talib/_stream.pxi":3108 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_codeobj__410 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPERIOD, 3108, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__410)) __PYX_ERR(4, 3108, __pyx_L1_error) + + /* "talib/_stream.pxi":3135 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_codeobj__411 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_DCPHASE, 3135, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__411)) __PYX_ERR(4, 3135, __pyx_L1_error) + + /* "talib/_stream.pxi":3162 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_PHASOR( np.ndarray real not None ): + */ + __pyx_tuple__412 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinphase, __pyx_n_s_outquadrature); if (unlikely(!__pyx_tuple__412)) __PYX_ERR(4, 3162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__412); + __Pyx_GIVEREF(__pyx_tuple__412); + __pyx_codeobj__413 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__412, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_PHASOR, 3162, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__413)) __PYX_ERR(4, 3162, __pyx_L1_error) + + /* "talib/_stream.pxi":3192 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_SINE( np.ndarray real not None ): + */ + __pyx_tuple__414 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outsine, __pyx_n_s_outleadsine); if (unlikely(!__pyx_tuple__414)) __PYX_ERR(4, 3192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__414); + __Pyx_GIVEREF(__pyx_tuple__414); + __pyx_codeobj__415 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__414, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_SINE, 3192, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__415)) __PYX_ERR(4, 3192, __pyx_L1_error) + + /* "talib/_stream.pxi":3222 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_codeobj__416 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDLINE, 3222, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__416)) __PYX_ERR(4, 3222, __pyx_L1_error) + + /* "talib/_stream.pxi":3249 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_tuple__417 = PyTuple_Pack(7, __pyx_n_s_real, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__417)) __PYX_ERR(4, 3249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__417); + __Pyx_GIVEREF(__pyx_tuple__417); + __pyx_codeobj__418 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__417, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_HT_TRENDMODE, 3249, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__418)) __PYX_ERR(4, 3249, __pyx_L1_error) + + /* "talib/_stream.pxi":3276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__419 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_KAMA, 3276, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__419)) __PYX_ERR(4, 3276, __pyx_L1_error) + + /* "talib/_stream.pxi":3305 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__420 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG, 3305, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__420)) __PYX_ERR(4, 3305, __pyx_L1_error) + + /* "talib/_stream.pxi":3334 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__421 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_ANGLE, 3334, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__421)) __PYX_ERR(4, 3334, __pyx_L1_error) + + /* "talib/_stream.pxi":3363 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__422 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_INTERCEPT, 3363, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__422)) __PYX_ERR(4, 3363, __pyx_L1_error) + + /* "talib/_stream.pxi":3392 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__423 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LINEARREG_SLOPE, 3392, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__423)) __PYX_ERR(4, 3392, __pyx_L1_error) + + /* "talib/_stream.pxi":3421 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LN( np.ndarray real not None ): + */ + __pyx_codeobj__424 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LN, 3421, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__424)) __PYX_ERR(4, 3421, __pyx_L1_error) + + /* "talib/_stream.pxi":3448 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LOG10( np.ndarray real not None ): + */ + __pyx_codeobj__425 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_LOG10, 3448, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__425)) __PYX_ERR(4, 3448, __pyx_L1_error) + + /* "talib/_stream.pxi":3475 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__426 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__426)) __PYX_ERR(4, 3475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__426); + __Pyx_GIVEREF(__pyx_tuple__426); + __pyx_codeobj__427 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__426, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MA, 3475, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__427)) __PYX_ERR(4, 3475, __pyx_L1_error) + + /* "talib/_stream.pxi":3505 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + __pyx_tuple__428 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_slowperiod, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__428)) __PYX_ERR(4, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__428); + __Pyx_GIVEREF(__pyx_tuple__428); + __pyx_codeobj__429 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__428, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACD, 3505, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__429)) __PYX_ERR(4, 3505, __pyx_L1_error) + + /* "talib/_stream.pxi":3542 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + __pyx_tuple__430 = PyTuple_Pack(15, __pyx_n_s_real, __pyx_n_s_fastperiod, __pyx_n_s_fastmatype, __pyx_n_s_slowperiod, __pyx_n_s_slowmatype, __pyx_n_s_signalperiod, __pyx_n_s_signalmatype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__430)) __PYX_ERR(4, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__430); + __Pyx_GIVEREF(__pyx_tuple__430); + __pyx_codeobj__431 = (PyObject*)__Pyx_PyCode_New(7, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__430, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDEXT, 3542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__431)) __PYX_ERR(4, 3542, __pyx_L1_error) + + /* "talib/_stream.pxi":3582 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + __pyx_tuple__432 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_signalperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmacd, __pyx_n_s_outmacdsignal, __pyx_n_s_outmacdhist); if (unlikely(!__pyx_tuple__432)) __PYX_ERR(4, 3582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__432); + __Pyx_GIVEREF(__pyx_tuple__432); + __pyx_codeobj__433 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__432, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MACDFIX, 3582, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__433)) __PYX_ERR(4, 3582, __pyx_L1_error) + + /* "talib/_stream.pxi":3617 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + __pyx_tuple__434 = PyTuple_Pack(10, __pyx_n_s_real, __pyx_n_s_fastlimit, __pyx_n_s_slowlimit, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmama, __pyx_n_s_outfama); if (unlikely(!__pyx_tuple__434)) __PYX_ERR(4, 3617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__434); + __Pyx_GIVEREF(__pyx_tuple__434); + __pyx_codeobj__435 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__434, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAMA, 3617, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__435)) __PYX_ERR(4, 3617, __pyx_L1_error) + + /* "talib/_stream.pxi":3650 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + __pyx_tuple__436 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_periods, __pyx_n_s_minperiod, __pyx_n_s_maxperiod, __pyx_n_s_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_periods_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__436)) __PYX_ERR(4, 3650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__436); + __Pyx_GIVEREF(__pyx_tuple__436); + __pyx_codeobj__437 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__436, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAVP, 3650, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__437)) __PYX_ERR(4, 3650, __pyx_L1_error) + + /* "talib/_stream.pxi":3685 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__438 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAX, 3685, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__438)) __PYX_ERR(4, 3685, __pyx_L1_error) + + /* "talib/_stream.pxi":3714 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__439 = PyTuple_Pack(8, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outinteger); if (unlikely(!__pyx_tuple__439)) __PYX_ERR(4, 3714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__439); + __Pyx_GIVEREF(__pyx_tuple__439); + __pyx_codeobj__440 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MAXINDEX, 3714, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__440)) __PYX_ERR(4, 3714, __pyx_L1_error) + + /* "talib/_stream.pxi":3743 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + */ + __pyx_tuple__441 = PyTuple_Pack(9, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__441)) __PYX_ERR(4, 3743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__441); + __Pyx_GIVEREF(__pyx_tuple__441); + __pyx_codeobj__442 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__441, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MEDPRICE, 3743, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__442)) __PYX_ERR(4, 3743, __pyx_L1_error) + + /* "talib/_stream.pxi":3773 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + __pyx_tuple__443 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_volume, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__443)) __PYX_ERR(4, 3773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__443); + __Pyx_GIVEREF(__pyx_tuple__443); + __pyx_codeobj__444 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__443, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MFI, 3773, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__444)) __PYX_ERR(4, 3773, __pyx_L1_error) + + /* "talib/_stream.pxi":3811 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__445 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPOINT, 3811, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__445)) __PYX_ERR(4, 3811, __pyx_L1_error) + + /* "talib/_stream.pxi":3840 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__446 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIDPRICE, 3840, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__446)) __PYX_ERR(4, 3840, __pyx_L1_error) + + /* "talib/_stream.pxi":3872 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__447 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MIN, 3872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__447)) __PYX_ERR(4, 3872, __pyx_L1_error) + + /* "talib/_stream.pxi":3901 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__448 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__439, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MININDEX, 3901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__448)) __PYX_ERR(4, 3901, __pyx_L1_error) + + /* "talib/_stream.pxi":3930 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__449 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outmin, __pyx_n_s_outmax); if (unlikely(!__pyx_tuple__449)) __PYX_ERR(4, 3930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__449); + __Pyx_GIVEREF(__pyx_tuple__449); + __pyx_codeobj__450 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__449, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAX, 3930, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__450)) __PYX_ERR(4, 3930, __pyx_L1_error) + + /* "talib/_stream.pxi":3962 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_tuple__451 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outminidx, __pyx_n_s_outmaxidx); if (unlikely(!__pyx_tuple__451)) __PYX_ERR(4, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__451); + __Pyx_GIVEREF(__pyx_tuple__451); + __pyx_codeobj__452 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__451, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINMAXINDEX, 3962, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__452)) __PYX_ERR(4, 3962, __pyx_L1_error) + + /* "talib/_stream.pxi":3994 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__453 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DI, 3994, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__453)) __PYX_ERR(4, 3994, __pyx_L1_error) + + /* "talib/_stream.pxi":4029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__454 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MINUS_DM, 4029, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__454)) __PYX_ERR(4, 4029, __pyx_L1_error) + + /* "talib/_stream.pxi":4061 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__455 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MOM, 4061, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__455)) __PYX_ERR(4, 4061, __pyx_L1_error) + + /* "talib/_stream.pxi":4090 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__456 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_MULT, 4090, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__456)) __PYX_ERR(4, 4090, __pyx_L1_error) + + /* "talib/_stream.pxi":4121 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__457 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_NATR, 4121, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__457)) __PYX_ERR(4, 4121, __pyx_L1_error) + + /* "talib/_stream.pxi":4156 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + __pyx_tuple__458 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_volume, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_volume_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__458)) __PYX_ERR(4, 4156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__458); + __Pyx_GIVEREF(__pyx_tuple__458); + __pyx_codeobj__459 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__458, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_OBV, 4156, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__459)) __PYX_ERR(4, 4156, __pyx_L1_error) + + /* "talib/_stream.pxi":4187 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__460 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DI, 4187, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__460)) __PYX_ERR(4, 4187, __pyx_L1_error) + + /* "talib/_stream.pxi":4222 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__461 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__322, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PLUS_DM, 4222, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__461)) __PYX_ERR(4, 4222, __pyx_L1_error) + + /* "talib/_stream.pxi":4254 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_codeobj__462 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__318, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_PPO, 4254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__462)) __PYX_ERR(4, 4254, __pyx_L1_error) + + /* "talib/_stream.pxi":4285 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__463 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROC, 4285, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__463)) __PYX_ERR(4, 4285, __pyx_L1_error) + + /* "talib/_stream.pxi":4314 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__464 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCP, 4314, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__464)) __PYX_ERR(4, 4314, __pyx_L1_error) + + /* "talib/_stream.pxi":4343 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__465 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR, 4343, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__465)) __PYX_ERR(4, 4343, __pyx_L1_error) + + /* "talib/_stream.pxi":4372 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__466 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ROCR100, 4372, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__466)) __PYX_ERR(4, 4372, __pyx_L1_error) + + /* "talib/_stream.pxi":4401 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__467 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_RSI, 4401, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__467)) __PYX_ERR(4, 4401, __pyx_L1_error) + + /* "talib/_stream.pxi":4430 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + __pyx_tuple__468 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_acceleration, __pyx_n_s_maximum, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__468)) __PYX_ERR(4, 4430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__468); + __Pyx_GIVEREF(__pyx_tuple__468); + __pyx_codeobj__469 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__468, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAR, 4430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__469)) __PYX_ERR(4, 4430, __pyx_L1_error) + + /* "talib/_stream.pxi":4463 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + __pyx_tuple__470 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_startvalue, __pyx_n_s_offsetonreverse, __pyx_n_s_accelerationinitlong, __pyx_n_s_accelerationlong, __pyx_n_s_accelerationmaxlong, __pyx_n_s_accelerationinitshort, __pyx_n_s_accelerationshort, __pyx_n_s_accelerationmaxshort, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__470)) __PYX_ERR(4, 4463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__470); + __Pyx_GIVEREF(__pyx_tuple__470); + __pyx_codeobj__471 = (PyObject*)__Pyx_PyCode_New(10, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__470, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SAREXT, 4463, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__471)) __PYX_ERR(4, 4463, __pyx_L1_error) + + /* "talib/_stream.pxi":4502 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SIN( np.ndarray real not None ): + */ + __pyx_codeobj__472 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SIN, 4502, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__472)) __PYX_ERR(4, 4502, __pyx_L1_error) + + /* "talib/_stream.pxi":4529 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SINH( np.ndarray real not None ): + */ + __pyx_codeobj__473 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SINH, 4529, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__473)) __PYX_ERR(4, 4529, __pyx_L1_error) + + /* "talib/_stream.pxi":4556 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__474 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SMA, 4556, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__474)) __PYX_ERR(4, 4556, __pyx_L1_error) + + /* "talib/_stream.pxi":4585 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SQRT( np.ndarray real not None ): + */ + __pyx_codeobj__475 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SQRT, 4585, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__475)) __PYX_ERR(4, 4585, __pyx_L1_error) + + /* "talib/_stream.pxi":4612 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_tuple__476 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_nbdev, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__476)) __PYX_ERR(4, 4612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__476); + __Pyx_GIVEREF(__pyx_tuple__476); + __pyx_codeobj__477 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STDDEV, 4612, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__477)) __PYX_ERR(4, 4612, __pyx_L1_error) + + /* "talib/_stream.pxi":4642 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + __pyx_tuple__478 = PyTuple_Pack(17, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_slowk_period, __pyx_n_s_slowk_matype, __pyx_n_s_slowd_period, __pyx_n_s_slowd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outslowk, __pyx_n_s_outslowd); if (unlikely(!__pyx_tuple__478)) __PYX_ERR(4, 4642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__478); + __Pyx_GIVEREF(__pyx_tuple__478); + __pyx_codeobj__479 = (PyObject*)__Pyx_PyCode_New(8, 0, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__478, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCH, 4642, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__479)) __PYX_ERR(4, 4642, __pyx_L1_error) + + /* "talib/_stream.pxi":4684 + * return outslowk , outslowd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + __pyx_tuple__480 = PyTuple_Pack(15, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__480)) __PYX_ERR(4, 4684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__480); + __Pyx_GIVEREF(__pyx_tuple__480); + __pyx_codeobj__481 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__480, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHF, 4684, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__481)) __PYX_ERR(4, 4684, __pyx_L1_error) + + /* "talib/_stream.pxi":4724 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): + */ + __pyx_tuple__482 = PyTuple_Pack(12, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_fastk_period, __pyx_n_s_fastd_period, __pyx_n_s_fastd_matype, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outfastk, __pyx_n_s_outfastd); if (unlikely(!__pyx_tuple__482)) __PYX_ERR(4, 4724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__482); + __Pyx_GIVEREF(__pyx_tuple__482); + __pyx_codeobj__483 = (PyObject*)__Pyx_PyCode_New(5, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__482, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_STOCHRSI, 4724, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__483)) __PYX_ERR(4, 4724, __pyx_L1_error) + + /* "talib/_stream.pxi":4759 + * return outfastk , outfastd + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_codeobj__484 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__311, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUB, 4759, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__484)) __PYX_ERR(4, 4759, __pyx_L1_error) + + /* "talib/_stream.pxi":4790 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__485 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_SUM, 4790, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__485)) __PYX_ERR(4, 4790, __pyx_L1_error) + + /* "talib/_stream.pxi":4819 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + __pyx_tuple__486 = PyTuple_Pack(9, __pyx_n_s_real, __pyx_n_s_timeperiod, __pyx_n_s_vfactor, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_real_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__486)) __PYX_ERR(4, 4819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__486); + __Pyx_GIVEREF(__pyx_tuple__486); + __pyx_codeobj__487 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__486, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_T3, 4819, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__487)) __PYX_ERR(4, 4819, __pyx_L1_error) + + /* "talib/_stream.pxi":4849 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TAN( np.ndarray real not None ): + */ + __pyx_codeobj__488 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TAN, 4849, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__488)) __PYX_ERR(4, 4849, __pyx_L1_error) + + /* "talib/_stream.pxi":4876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TANH( np.ndarray real not None ): + */ + __pyx_codeobj__489 = (PyObject*)__Pyx_PyCode_New(1, 0, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__307, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TANH, 4876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__489)) __PYX_ERR(4, 4876, __pyx_L1_error) + + /* "talib/_stream.pxi":4903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__490 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TEMA, 4903, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__490)) __PYX_ERR(4, 4903, __pyx_L1_error) + + /* "talib/_stream.pxi":4932 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_tuple__491 = PyTuple_Pack(11, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__491)) __PYX_ERR(4, 4932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__491); + __Pyx_GIVEREF(__pyx_tuple__491); + __pyx_codeobj__492 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRANGE, 4932, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__492)) __PYX_ERR(4, 4932, __pyx_L1_error) + + /* "talib/_stream.pxi":4965 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__493 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIMA, 4965, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__493)) __PYX_ERR(4, 4965, __pyx_L1_error) + + /* "talib/_stream.pxi":4994 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__494 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TRIX, 4994, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__494)) __PYX_ERR(4, 4994, __pyx_L1_error) + + /* "talib/_stream.pxi":5023 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__495 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TSF, 5023, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__495)) __PYX_ERR(4, 5023, __pyx_L1_error) + + /* "talib/_stream.pxi":5052 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__496 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_TYPPRICE, 5052, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__496)) __PYX_ERR(4, 5052, __pyx_L1_error) + + /* "talib/_stream.pxi":5085 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + __pyx_tuple__497 = PyTuple_Pack(14, __pyx_n_s_high, __pyx_n_s_low, __pyx_n_s_close, __pyx_n_s_timeperiod1, __pyx_n_s_timeperiod2, __pyx_n_s_timeperiod3, __pyx_n_s_length, __pyx_n_s_retCode, __pyx_n_s_high_data, __pyx_n_s_low_data, __pyx_n_s_close_data, __pyx_n_s_outbegidx, __pyx_n_s_outnbelement, __pyx_n_s_outreal); if (unlikely(!__pyx_tuple__497)) __PYX_ERR(4, 5085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_tuple__497); + __Pyx_GIVEREF(__pyx_tuple__497); + __pyx_codeobj__498 = (PyObject*)__Pyx_PyCode_New(6, 0, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__497, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_ULTOSC, 5085, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__498)) __PYX_ERR(4, 5085, __pyx_L1_error) + + /* "talib/_stream.pxi":5122 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_codeobj__499 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__476, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_VAR, 5122, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__499)) __PYX_ERR(4, 5122, __pyx_L1_error) + + /* "talib/_stream.pxi":5152 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_codeobj__500 = (PyObject*)__Pyx_PyCode_New(3, 0, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__491, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WCLPRICE, 5152, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__500)) __PYX_ERR(4, 5152, __pyx_L1_error) + + /* "talib/_stream.pxi":5185 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__501 = (PyObject*)__Pyx_PyCode_New(4, 0, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__315, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WILLR, 5185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__501)) __PYX_ERR(4, 5185, __pyx_L1_error) + + /* "talib/_stream.pxi":5220 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_codeobj__502 = (PyObject*)__Pyx_PyCode_New(2, 0, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__399, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_talib__stream_pxi, __pyx_n_s_stream_WMA, 5220, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__502)) __PYX_ERR(4, 5220, __pyx_L1_error) + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_RefNannyFinishContext(); + return -1; +} +/* #### Code section: init_constants ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitConstants(void) { + __pyx_umethod_PyDict_Type_keys.type = (PyObject*)&PyDict_Type; + __pyx_umethod_PyDict_Type_keys.method_name = &__pyx_n_s_keys; + if (__Pyx_CreateStringTabAndInitStrings() < 0) __PYX_ERR(5, 1, __pyx_L1_error); + __pyx_int_0 = PyInt_FromLong(0); if (unlikely(!__pyx_int_0)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_1 = PyInt_FromLong(1); if (unlikely(!__pyx_int_1)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_2 = PyInt_FromLong(2); if (unlikely(!__pyx_int_2)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_3 = PyInt_FromLong(3); if (unlikely(!__pyx_int_3)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_4 = PyInt_FromLong(4); if (unlikely(!__pyx_int_4)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_8 = PyInt_FromLong(8); if (unlikely(!__pyx_int_8)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_9 = PyInt_FromLong(9); if (unlikely(!__pyx_int_9)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_12 = PyInt_FromLong(12); if (unlikely(!__pyx_int_12)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_16 = PyInt_FromLong(16); if (unlikely(!__pyx_int_16)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_32 = PyInt_FromLong(32); if (unlikely(!__pyx_int_32)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_64 = PyInt_FromLong(64); if (unlikely(!__pyx_int_64)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_128 = PyInt_FromLong(128); if (unlikely(!__pyx_int_128)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_256 = PyInt_FromLong(256); if (unlikely(!__pyx_int_256)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_512 = PyInt_FromLong(512); if (unlikely(!__pyx_int_512)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_1024 = PyInt_FromLong(1024); if (unlikely(!__pyx_int_1024)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_2048 = PyInt_FromLong(2048); if (unlikely(!__pyx_int_2048)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_4096 = PyInt_FromLong(4096); if (unlikely(!__pyx_int_4096)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_16777216 = PyInt_FromLong(16777216L); if (unlikely(!__pyx_int_16777216)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_67108864 = PyInt_FromLong(67108864L); if (unlikely(!__pyx_int_67108864)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_134217728 = PyInt_FromLong(134217728L); if (unlikely(!__pyx_int_134217728)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_268435456 = PyInt_FromLong(268435456L); if (unlikely(!__pyx_int_268435456)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_int_neg_1 = PyInt_FromLong(-1); if (unlikely(!__pyx_int_neg_1)) __PYX_ERR(5, 1, __pyx_L1_error) + return 0; + __pyx_L1_error:; + return -1; +} +/* #### Code section: init_globals ### */ + +static CYTHON_SMALL_CODE int __Pyx_InitGlobals(void) { + return 0; +} +/* #### Code section: init_module ### */ + +static CYTHON_SMALL_CODE int __Pyx_modinit_global_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_export_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_init_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_type_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_variable_import_code(void); /*proto*/ +static CYTHON_SMALL_CODE int __Pyx_modinit_function_import_code(void); /*proto*/ + +static int __Pyx_modinit_global_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_global_init_code", 0); + /*--- Global init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_variable_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_export_code", 0); + /*--- Variable export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_export_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_export_code", 0); + /*--- Function export code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_init_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_type_init_code", 0); + /*--- Type init code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_type_import_code(void) { + __Pyx_RefNannyDeclarations + PyObject *__pyx_t_1 = NULL; + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannySetupContext("__Pyx_modinit_type_import_code", 0); + /*--- Type import code ---*/ + __pyx_t_1 = PyImport_ImportModule(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_t_1)) __PYX_ERR(6, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_7cpython_4type_type = __Pyx_ImportType_3_0_11(__pyx_t_1, __Pyx_BUILTIN_MODULE_NAME, "type", + #if defined(PYPY_VERSION_NUM) && PYPY_VERSION_NUM < 0x050B0000 + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), + #elif CYTHON_COMPILING_IN_LIMITED_API + sizeof(PyTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyTypeObject), + #else + sizeof(PyHeapTypeObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyHeapTypeObject), + #endif + __Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_7cpython_4type_type) __PYX_ERR(6, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __pyx_t_1 = PyImport_ImportModule("numpy"); if (unlikely(!__pyx_t_1)) __PYX_ERR(2, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_1); + __pyx_ptype_5numpy_dtype = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "dtype", sizeof(PyArray_Descr), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArray_Descr),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_dtype) __PYX_ERR(2, 271, __pyx_L1_error) + __pyx_ptype_5numpy_flatiter = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flatiter", sizeof(PyArrayIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_flatiter) __PYX_ERR(2, 316, __pyx_L1_error) + __pyx_ptype_5numpy_broadcast = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "broadcast", sizeof(PyArrayMultiIterObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayMultiIterObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_broadcast) __PYX_ERR(2, 320, __pyx_L1_error) + __pyx_ptype_5numpy_ndarray = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ndarray", sizeof(PyArrayObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyArrayObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ndarray) __PYX_ERR(2, 359, __pyx_L1_error) + __pyx_ptype_5numpy_generic = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "generic", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_generic) __PYX_ERR(2, 847, __pyx_L1_error) + __pyx_ptype_5numpy_number = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "number", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_number) __PYX_ERR(2, 849, __pyx_L1_error) + __pyx_ptype_5numpy_integer = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "integer", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_integer) __PYX_ERR(2, 851, __pyx_L1_error) + __pyx_ptype_5numpy_signedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "signedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_signedinteger) __PYX_ERR(2, 853, __pyx_L1_error) + __pyx_ptype_5numpy_unsignedinteger = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "unsignedinteger", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_unsignedinteger) __PYX_ERR(2, 855, __pyx_L1_error) + __pyx_ptype_5numpy_inexact = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "inexact", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_inexact) __PYX_ERR(2, 857, __pyx_L1_error) + __pyx_ptype_5numpy_floating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "floating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_floating) __PYX_ERR(2, 859, __pyx_L1_error) + __pyx_ptype_5numpy_complexfloating = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "complexfloating", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_complexfloating) __PYX_ERR(2, 861, __pyx_L1_error) + __pyx_ptype_5numpy_flexible = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "flexible", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_flexible) __PYX_ERR(2, 863, __pyx_L1_error) + __pyx_ptype_5numpy_character = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "character", sizeof(PyObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyObject),__Pyx_ImportType_CheckSize_Warn_3_0_11); if (!__pyx_ptype_5numpy_character) __PYX_ERR(2, 865, __pyx_L1_error) + __pyx_ptype_5numpy_ufunc = __Pyx_ImportType_3_0_11(__pyx_t_1, "numpy", "ufunc", sizeof(PyUFuncObject), __PYX_GET_STRUCT_ALIGNMENT_3_0_11(PyUFuncObject),__Pyx_ImportType_CheckSize_Ignore_3_0_11); if (!__pyx_ptype_5numpy_ufunc) __PYX_ERR(2, 929, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_RefNannyFinishContext(); + return 0; + __pyx_L1_error:; + __Pyx_XDECREF(__pyx_t_1); + __Pyx_RefNannyFinishContext(); + return -1; +} + +static int __Pyx_modinit_variable_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_variable_import_code", 0); + /*--- Variable import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + +static int __Pyx_modinit_function_import_code(void) { + __Pyx_RefNannyDeclarations + __Pyx_RefNannySetupContext("__Pyx_modinit_function_import_code", 0); + /*--- Function import code ---*/ + __Pyx_RefNannyFinishContext(); + return 0; +} + + +#if PY_MAJOR_VERSION >= 3 +#if CYTHON_PEP489_MULTI_PHASE_INIT +static PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def); /*proto*/ +static int __pyx_pymod_exec__ta_lib(PyObject* module); /*proto*/ +static PyModuleDef_Slot __pyx_moduledef_slots[] = { + {Py_mod_create, (void*)__pyx_pymod_create}, + {Py_mod_exec, (void*)__pyx_pymod_exec__ta_lib}, + {0, NULL} +}; +#endif + +#ifdef __cplusplus +namespace { + struct PyModuleDef __pyx_moduledef = + #else + static struct PyModuleDef __pyx_moduledef = + #endif + { + PyModuleDef_HEAD_INIT, + "_ta_lib", + 0, /* m_doc */ + #if CYTHON_PEP489_MULTI_PHASE_INIT + 0, /* m_size */ + #elif CYTHON_USE_MODULE_STATE + sizeof(__pyx_mstate), /* m_size */ + #else + -1, /* m_size */ + #endif + __pyx_methods /* m_methods */, + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_moduledef_slots, /* m_slots */ + #else + NULL, /* m_reload */ + #endif + #if CYTHON_USE_MODULE_STATE + __pyx_m_traverse, /* m_traverse */ + __pyx_m_clear, /* m_clear */ + NULL /* m_free */ + #else + NULL, /* m_traverse */ + NULL, /* m_clear */ + NULL /* m_free */ + #endif + }; + #ifdef __cplusplus +} /* anonymous namespace */ +#endif +#endif + +#ifndef CYTHON_NO_PYINIT_EXPORT +#define __Pyx_PyMODINIT_FUNC PyMODINIT_FUNC +#elif PY_MAJOR_VERSION < 3 +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" void +#else +#define __Pyx_PyMODINIT_FUNC void +#endif +#else +#ifdef __cplusplus +#define __Pyx_PyMODINIT_FUNC extern "C" PyObject * +#else +#define __Pyx_PyMODINIT_FUNC PyObject * +#endif +#endif + + +#if PY_MAJOR_VERSION < 3 +__Pyx_PyMODINIT_FUNC init_ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC init_ta_lib(void) +#else +__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) CYTHON_SMALL_CODE; /*proto*/ +__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void) +#if CYTHON_PEP489_MULTI_PHASE_INIT +{ + return PyModuleDef_Init(&__pyx_moduledef); +} +static CYTHON_SMALL_CODE int __Pyx_check_single_interpreter(void) { + #if PY_VERSION_HEX >= 0x030700A1 + static PY_INT64_T main_interpreter_id = -1; + PY_INT64_T current_id = PyInterpreterState_GetID(PyThreadState_Get()->interp); + if (main_interpreter_id == -1) { + main_interpreter_id = current_id; + return (unlikely(current_id == -1)) ? -1 : 0; + } else if (unlikely(main_interpreter_id != current_id)) + #else + static PyInterpreterState *main_interpreter = NULL; + PyInterpreterState *current_interpreter = PyThreadState_Get()->interp; + if (!main_interpreter) { + main_interpreter = current_interpreter; + } else if (unlikely(main_interpreter != current_interpreter)) + #endif + { + PyErr_SetString( + PyExc_ImportError, + "Interpreter change detected - this module can only be loaded into one interpreter per process."); + return -1; + } + return 0; +} +#if CYTHON_COMPILING_IN_LIMITED_API +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *module, const char* from_name, const char* to_name, int allow_none) +#else +static CYTHON_SMALL_CODE int __Pyx_copy_spec_to_module(PyObject *spec, PyObject *moddict, const char* from_name, const char* to_name, int allow_none) +#endif +{ + PyObject *value = PyObject_GetAttrString(spec, from_name); + int result = 0; + if (likely(value)) { + if (allow_none || value != Py_None) { +#if CYTHON_COMPILING_IN_LIMITED_API + result = PyModule_AddObject(module, to_name, value); +#else + result = PyDict_SetItemString(moddict, to_name, value); +#endif + } + Py_DECREF(value); + } else if (PyErr_ExceptionMatches(PyExc_AttributeError)) { + PyErr_Clear(); + } else { + result = -1; + } + return result; +} +static CYTHON_SMALL_CODE PyObject* __pyx_pymod_create(PyObject *spec, PyModuleDef *def) { + PyObject *module = NULL, *moddict, *modname; + CYTHON_UNUSED_VAR(def); + if (__Pyx_check_single_interpreter()) + return NULL; + if (__pyx_m) + return __Pyx_NewRef(__pyx_m); + modname = PyObject_GetAttrString(spec, "name"); + if (unlikely(!modname)) goto bad; + module = PyModule_NewObject(modname); + Py_DECREF(modname); + if (unlikely(!module)) goto bad; +#if CYTHON_COMPILING_IN_LIMITED_API + moddict = module; +#else + moddict = PyModule_GetDict(module); + if (unlikely(!moddict)) goto bad; +#endif + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "loader", "__loader__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "origin", "__file__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "parent", "__package__", 1) < 0)) goto bad; + if (unlikely(__Pyx_copy_spec_to_module(spec, moddict, "submodule_search_locations", "__path__", 0) < 0)) goto bad; + return module; +bad: + Py_XDECREF(module); + return NULL; +} + + +static CYTHON_SMALL_CODE int __pyx_pymod_exec__ta_lib(PyObject *__pyx_pyinit_module) +#endif +#endif +{ + int stringtab_initialized = 0; + #if CYTHON_USE_MODULE_STATE + int pystate_addmodule_run = 0; + #endif + PyObject *__pyx_t_1 = NULL; + 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 = 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)(PyObject *); + Py_ssize_t __pyx_t_17; + PyObject *__pyx_t_18 = NULL; + PyObject *__pyx_t_19 = NULL; + PyObject *__pyx_t_20 = NULL; + double __pyx_t_21; + int __pyx_t_22; + PyObject *__pyx_t_23 = NULL; + PyObject *__pyx_t_24 = NULL; + int __pyx_t_25; + PyObject *__pyx_t_26 = NULL; + PyObject *__pyx_t_27 = NULL; + PyObject *__pyx_t_28 = NULL; + int __pyx_t_29; + int __pyx_t_30; + int __pyx_t_31; + PyObject *(*__pyx_t_32)(PyObject *); + int __pyx_lineno = 0; + const char *__pyx_filename = NULL; + int __pyx_clineno = 0; + __Pyx_RefNannyDeclarations + #if CYTHON_PEP489_MULTI_PHASE_INIT + if (__pyx_m) { + if (__pyx_m == __pyx_pyinit_module) return 0; + PyErr_SetString(PyExc_RuntimeError, "Module '_ta_lib' has already been imported. Re-initialisation is not supported."); + return -1; + } + #elif PY_MAJOR_VERSION >= 3 + if (__pyx_m) return __Pyx_NewRef(__pyx_m); + #endif + /*--- Module creation code ---*/ + #if CYTHON_PEP489_MULTI_PHASE_INIT + __pyx_m = __pyx_pyinit_module; + Py_INCREF(__pyx_m); + #else + #if PY_MAJOR_VERSION < 3 + __pyx_m = Py_InitModule4("_ta_lib", __pyx_methods, 0, 0, PYTHON_API_VERSION); Py_XINCREF(__pyx_m); + if (unlikely(!__pyx_m)) __PYX_ERR(5, 1, __pyx_L1_error) + #elif CYTHON_USE_MODULE_STATE + __pyx_t_1 = PyModule_Create(&__pyx_moduledef); if (unlikely(!__pyx_t_1)) __PYX_ERR(5, 1, __pyx_L1_error) + { + int add_module_result = PyState_AddModule(__pyx_t_1, &__pyx_moduledef); + __pyx_t_1 = 0; /* transfer ownership from __pyx_t_1 to "_ta_lib" pseudovariable */ + if (unlikely((add_module_result < 0))) __PYX_ERR(5, 1, __pyx_L1_error) + pystate_addmodule_run = 1; + } + #else + __pyx_m = PyModule_Create(&__pyx_moduledef); + if (unlikely(!__pyx_m)) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #endif + CYTHON_UNUSED_VAR(__pyx_t_1); + __pyx_d = PyModule_GetDict(__pyx_m); if (unlikely(!__pyx_d)) __PYX_ERR(5, 1, __pyx_L1_error) + Py_INCREF(__pyx_d); + __pyx_b = __Pyx_PyImport_AddModuleRef(__Pyx_BUILTIN_MODULE_NAME); if (unlikely(!__pyx_b)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_cython_runtime = __Pyx_PyImport_AddModuleRef((const char *) "cython_runtime"); if (unlikely(!__pyx_cython_runtime)) __PYX_ERR(5, 1, __pyx_L1_error) + if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #if CYTHON_REFNANNY +__Pyx_RefNanny = __Pyx_RefNannyImportAPI("refnanny"); +if (!__Pyx_RefNanny) { + PyErr_Clear(); + __Pyx_RefNanny = __Pyx_RefNannyImportAPI("Cython.Runtime.refnanny"); + if (!__Pyx_RefNanny) + Py_FatalError("failed to import 'refnanny' module"); +} +#endif + __Pyx_RefNannySetupContext("__Pyx_PyMODINIT_FUNC PyInit__ta_lib(void)", 0); + if (__Pyx_check_binary_version(__PYX_LIMITED_VERSION_HEX, __Pyx_get_runtime_version(), CYTHON_COMPILING_IN_LIMITED_API) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #ifdef __Pxy_PyFrame_Initialize_Offsets + __Pxy_PyFrame_Initialize_Offsets(); + #endif + __pyx_empty_tuple = PyTuple_New(0); if (unlikely(!__pyx_empty_tuple)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_empty_bytes = PyBytes_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_bytes)) __PYX_ERR(5, 1, __pyx_L1_error) + __pyx_empty_unicode = PyUnicode_FromStringAndSize("", 0); if (unlikely(!__pyx_empty_unicode)) __PYX_ERR(5, 1, __pyx_L1_error) + #ifdef __Pyx_CyFunction_USED + if (__pyx_CyFunction_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_FusedFunction_USED + if (__pyx_FusedFunction_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Coroutine_USED + if (__pyx_Coroutine_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_Generator_USED + if (__pyx_Generator_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_AsyncGen_USED + if (__pyx_AsyncGen_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + #ifdef __Pyx_StopAsyncIteration_USED + if (__pyx_StopAsyncIteration_init(__pyx_m) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + /*--- Library function declarations ---*/ + /*--- Threads initialization code ---*/ + #if defined(WITH_THREAD) && PY_VERSION_HEX < 0x030700F0 && defined(__PYX_FORCE_INIT_THREADS) && __PYX_FORCE_INIT_THREADS + PyEval_InitThreads(); + #endif + /*--- Initialize various global constants etc. ---*/ + if (__Pyx_InitConstants() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + stringtab_initialized = 1; + if (__Pyx_InitGlobals() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #if PY_MAJOR_VERSION < 3 && (__PYX_DEFAULT_STRING_ENCODING_IS_ASCII || __PYX_DEFAULT_STRING_ENCODING_IS_DEFAULT) + if (__Pyx_init_sys_getdefaultencoding_params() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + if (__pyx_module_is_main_talib___ta_lib) { + if (PyObject_SetAttr(__pyx_m, __pyx_n_s_name_2, __pyx_n_s_main) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + } + #if PY_MAJOR_VERSION >= 3 + { + PyObject *modules = PyImport_GetModuleDict(); if (unlikely(!modules)) __PYX_ERR(5, 1, __pyx_L1_error) + if (!PyDict_GetItemString(modules, "talib._ta_lib")) { + if (unlikely((PyDict_SetItemString(modules, "talib._ta_lib", __pyx_m) < 0))) __PYX_ERR(5, 1, __pyx_L1_error) + } + } + #endif + /*--- Builtin init code ---*/ + if (__Pyx_InitCachedBuiltins() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + /*--- Constants init code ---*/ + if (__Pyx_InitCachedConstants() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + /*--- Global type/function init code ---*/ + (void)__Pyx_modinit_global_init_code(); + (void)__Pyx_modinit_variable_export_code(); + (void)__Pyx_modinit_function_export_code(); + (void)__Pyx_modinit_type_init_code(); + if (unlikely((__Pyx_modinit_type_import_code() < 0))) __PYX_ERR(5, 1, __pyx_L1_error) + (void)__Pyx_modinit_variable_import_code(); + (void)__Pyx_modinit_function_import_code(); + /*--- Execution code ---*/ + #if defined(__Pyx_Generator_USED) || defined(__Pyx_Coroutine_USED) + if (__Pyx_patch_abc() < 0) __PYX_ERR(5, 1, __pyx_L1_error) + #endif + + /* "talib/_common.pxi":4 + * from _ta_lib cimport TA_RetCode, TA_FuncUnstId + * + * __ta_version__ = lib.TA_GetVersionString() # <<<<<<<<<<<<<< + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): + */ + __pyx_t_2 = __Pyx_PyBytes_FromString(TA_GetVersionString()); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_version, __pyx_t_2) < 0) __PYX_ERR(0, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":6 + * __ta_version__ = lib.TA_GetVersionString() + * + * cpdef _ta_check_success(str function_name, TA_RetCode ret_code): # <<<<<<<<<<<<<< + * if ret_code == 0: + * return True + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_1_ta_check_success, 0, __pyx_n_s_ta_check_success, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__14)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_check_success, __pyx_t_2) < 0) __PYX_ERR(0, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":50 + * function_name, ret_code, description)) + * + * def _ta_initialize(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Initialize() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_3_ta_initialize, 0, __pyx_n_s_ta_initialize, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__16)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_initialize, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":55 + * _ta_check_success('TA_Initialize', ret_code) + * + * def _ta_shutdown(): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_Shutdown() + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_5_ta_shutdown, 0, __pyx_n_s_ta_shutdown, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__17)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_shutdown, __pyx_t_2) < 0) __PYX_ERR(0, 55, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__19); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_2, __pyx_n_s_MA_Type, __pyx_n_s_MA_Type, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (__pyx_t_2 != __pyx_tuple__19) { + if (unlikely((PyDict_SetItemString(__pyx_t_4, "__orig_bases__", __pyx_tuple__19) < 0))) __PYX_ERR(0, 60, __pyx_L1_error) + } + + /* "talib/_common.pxi":61 + * + * class MA_Type(object): + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) # <<<<<<<<<<<<<< + * + * def __init__(self): + */ + __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 61, __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 != 9)) { + if (size > 9) __Pyx_RaiseTooManyValuesError(9); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 61, __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_t_7 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 5); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 6); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 7); + __pyx_t_14 = PyTuple_GET_ITEM(sequence, 8); + } else { + __pyx_t_6 = PyList_GET_ITEM(sequence, 0); + __pyx_t_7 = PyList_GET_ITEM(sequence, 1); + __pyx_t_8 = PyList_GET_ITEM(sequence, 2); + __pyx_t_9 = PyList_GET_ITEM(sequence, 3); + __pyx_t_10 = PyList_GET_ITEM(sequence, 4); + __pyx_t_11 = PyList_GET_ITEM(sequence, 5); + __pyx_t_12 = PyList_GET_ITEM(sequence, 6); + __pyx_t_13 = PyList_GET_ITEM(sequence, 7); + __pyx_t_14 = PyList_GET_ITEM(sequence, 8); + } + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx_t_14); + #else + { + Py_ssize_t i; + PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; + for (i=0; i < 9; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[9] = {&__pyx_t_6,&__pyx_t_7,&__pyx_t_8,&__pyx_t_9,&__pyx_t_10,&__pyx_t_11,&__pyx_t_12,&__pyx_t_13,&__pyx_t_14}; + __pyx_t_15 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_15); + for (index=0; index < 9; index++) { + PyObject* item = __pyx_t_16(__pyx_t_15); if (unlikely(!item)) goto __pyx_L2_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_15), 9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + goto __pyx_L3_unpacking_done; + __pyx_L2_unpacking_failed:; + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 61, __pyx_L1_error) + __pyx_L3_unpacking_done:; + } + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_EMA, __pyx_t_7) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_WMA, __pyx_t_8) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_DEMA, __pyx_t_9) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TEMA, __pyx_t_10) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_TRIMA, __pyx_t_11) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_KAMA, __pyx_t_12) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_MAMA, __pyx_t_13) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_T3, __pyx_t_14) < 0) __PYX_ERR(0, 61, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_common.pxi":63 + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + * def __init__(self): # <<<<<<<<<<<<<< + * self._lookup = { + * MA_Type.SMA: 'Simple Moving Average', + */ + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_1__init__, 0, __pyx_n_s_MA_Type___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__22)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_init, __pyx_t_5) < 0) __PYX_ERR(0, 63, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "talib/_common.pxi":76 + * } + * + * def __getitem__(self, type_): # <<<<<<<<<<<<<< + * return self._lookup[type_] + * + */ + __pyx_t_5 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7MA_Type_3__getitem__, 0, __pyx_n_s_MA_Type___getitem, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__24)); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (__Pyx_SetNameInClass(__pyx_t_4, __pyx_n_s_getitem, __pyx_t_5) < 0) __PYX_ERR(0, 76, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + + /* "talib/_common.pxi":60 + * _ta_check_success('TA_Shutdown', ret_code) + * + * class MA_Type(object): # <<<<<<<<<<<<<< + * SMA, EMA, WMA, DEMA, TEMA, TRIMA, KAMA, MAMA, T3 = range(9) + * + */ + __pyx_t_5 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_MA_Type, __pyx_t_2, __pyx_t_4, NULL, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 60, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_5) < 0) __PYX_ERR(0, 60, __pyx_L1_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_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":79 + * return self._lookup[type_] + * + * MA_Type = MA_Type() # <<<<<<<<<<<<<< + * + * _ta_func_unst_ids = {'NONE': -1} + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_MA_Type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA_Type, __pyx_t_3) < 0) __PYX_ERR(0, 79, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":81 + * MA_Type = MA_Type() + * + * _ta_func_unst_ids = {'NONE': -1} # <<<<<<<<<<<<<< + * for i, name in enumerate([ + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + */ + __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_NONE, __pyx_int_neg_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_func_unst_ids, __pyx_t_3) < 0) __PYX_ERR(0, 81, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":82 + * + * _ta_func_unst_ids = {'NONE': -1} + * for i, name in enumerate([ # <<<<<<<<<<<<<< + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', + */ + __Pyx_INCREF(__pyx_int_0); + __pyx_t_3 = __pyx_int_0; + __pyx_t_2 = PyList_New(24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF(__pyx_n_s_ADX); + __Pyx_GIVEREF(__pyx_n_s_ADX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_ADX)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADXR); + __Pyx_GIVEREF(__pyx_n_s_ADXR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 1, __pyx_n_s_ADXR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATR); + __Pyx_GIVEREF(__pyx_n_s_ATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 2, __pyx_n_s_ATR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CMO); + __Pyx_GIVEREF(__pyx_n_s_CMO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 3, __pyx_n_s_CMO)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_DX); + __Pyx_GIVEREF(__pyx_n_s_DX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 4, __pyx_n_s_DX)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_EMA); + __Pyx_GIVEREF(__pyx_n_s_EMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 5, __pyx_n_s_EMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPERIOD); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPERIOD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 6, __pyx_n_s_HT_DCPERIOD)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_DCPHASE); + __Pyx_GIVEREF(__pyx_n_s_HT_DCPHASE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 7, __pyx_n_s_HT_DCPHASE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_PHASOR); + __Pyx_GIVEREF(__pyx_n_s_HT_PHASOR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 8, __pyx_n_s_HT_PHASOR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_SINE); + __Pyx_GIVEREF(__pyx_n_s_HT_SINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 9, __pyx_n_s_HT_SINE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDLINE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDLINE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 10, __pyx_n_s_HT_TRENDLINE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_HT_TRENDMODE); + __Pyx_GIVEREF(__pyx_n_s_HT_TRENDMODE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 11, __pyx_n_s_HT_TRENDMODE)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_KAMA); + __Pyx_GIVEREF(__pyx_n_s_KAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 12, __pyx_n_s_KAMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MAMA); + __Pyx_GIVEREF(__pyx_n_s_MAMA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 13, __pyx_n_s_MAMA)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MFI); + __Pyx_GIVEREF(__pyx_n_s_MFI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 14, __pyx_n_s_MFI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DI); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 15, __pyx_n_s_MINUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_MINUS_DM); + __Pyx_GIVEREF(__pyx_n_s_MINUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 16, __pyx_n_s_MINUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_NATR); + __Pyx_GIVEREF(__pyx_n_s_NATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 17, __pyx_n_s_NATR)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DI); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 18, __pyx_n_s_PLUS_DI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_PLUS_DM); + __Pyx_GIVEREF(__pyx_n_s_PLUS_DM); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 19, __pyx_n_s_PLUS_DM)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_RSI); + __Pyx_GIVEREF(__pyx_n_s_RSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 20, __pyx_n_s_RSI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_STOCHRSI); + __Pyx_GIVEREF(__pyx_n_s_STOCHRSI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 21, __pyx_n_s_STOCHRSI)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_T3); + __Pyx_GIVEREF(__pyx_n_s_T3); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 22, __pyx_n_s_T3)) __PYX_ERR(0, 82, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ALL); + __Pyx_GIVEREF(__pyx_n_s_ALL); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 23, __pyx_n_s_ALL)) __PYX_ERR(0, 82, __pyx_L1_error); + __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); + __pyx_t_17 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + for (;;) { + if (__pyx_t_17 >= 24) break; + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(0, 82, __pyx_L1_error) + #else + __pyx_t_2 = __Pyx_PySequence_ITEM(__pyx_t_4, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + #endif + if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_2) < 0) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_i, __pyx_t_3) < 0) __PYX_ERR(0, 82, __pyx_L1_error) + __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_3); + __pyx_t_3 = __pyx_t_2; + __pyx_t_2 = 0; + + /* "talib/_common.pxi":88 + * 'NATR', 'PLUS_DI', 'PLUS_DM', 'RSI', 'STOCHRSI', 'T3', 'ALL' + * ]): + * _ta_func_unst_ids[name] = i # <<<<<<<<<<<<<< + * + * def _ta_set_unstable_period(name, period): + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_ta_func_unst_ids); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_5); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (unlikely((PyObject_SetItem(__pyx_t_5, __pyx_t_14, __pyx_t_2) < 0))) __PYX_ERR(0, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_common.pxi":82 + * + * _ta_func_unst_ids = {'NONE': -1} + * for i, name in enumerate([ # <<<<<<<<<<<<<< + * 'ADX', 'ADXR', 'ATR', 'CMO', 'DX', 'EMA', 'HT_DCPERIOD', + * 'HT_DCPHASE', 'HT_PHASOR', 'HT_SINE', 'HT_TRENDLINE', + */ + } + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":90 + * _ta_func_unst_ids[name] = i + * + * def _ta_set_unstable_period(name, period): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_7_ta_set_unstable_period, 0, __pyx_n_s_ta_set_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__26)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 90, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":96 + * _ta_check_success('TA_SetUnstablePeriod', ret_code) + * + * def _ta_get_unstable_period(name): # <<<<<<<<<<<<<< + * cdef unsigned int period + * cdef TA_FuncUnstId id = _ta_func_unst_ids[name] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_9_ta_get_unstable_period, 0, __pyx_n_s_ta_get_unstable_period, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 96, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_unstable_period, __pyx_t_3) < 0) __PYX_ERR(0, 96, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":102 + * return period + * + * def _ta_set_compatibility(value): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCompatibility(value) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_11_ta_set_compatibility, 0, __pyx_n_s_ta_set_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__30)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 102, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":107 + * _ta_check_success('TA_SetCompatibility', ret_code) + * + * def _ta_get_compatibility(): # <<<<<<<<<<<<<< + * cdef int value + * value = lib.TA_GetCompatibility() + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_13_ta_get_compatibility, 0, __pyx_n_s_ta_get_compatibility, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_get_compatibility, __pyx_t_3) < 0) __PYX_ERR(0, 107, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_t_3 = __Pyx_PEP560_update_bases(__pyx_tuple__34); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_CalculateMetaclass(NULL, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_4, __pyx_t_3, __pyx_n_s_CandleSettingType, __pyx_n_s_CandleSettingType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_3 != __pyx_tuple__34) { + if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__34) < 0))) __PYX_ERR(0, 112, __pyx_L1_error) + } + + /* "talib/_common.pxi":115 + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) # <<<<<<<<<<<<<< + * + * CandleSettingType = CandleSettingType() + */ + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__35, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 115, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { + PyObject* sequence = __pyx_t_14; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 12)) { + if (size > 12) __Pyx_RaiseTooManyValuesError(12); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 113, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_12 = PyTuple_GET_ITEM(sequence, 2); + __pyx_t_11 = PyTuple_GET_ITEM(sequence, 3); + __pyx_t_10 = PyTuple_GET_ITEM(sequence, 4); + __pyx_t_9 = PyTuple_GET_ITEM(sequence, 5); + __pyx_t_8 = PyTuple_GET_ITEM(sequence, 6); + __pyx_t_7 = PyTuple_GET_ITEM(sequence, 7); + __pyx_t_6 = PyTuple_GET_ITEM(sequence, 8); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 9); + __pyx_t_18 = PyTuple_GET_ITEM(sequence, 10); + __pyx_t_19 = PyTuple_GET_ITEM(sequence, 11); + } else { + __pyx_t_5 = PyList_GET_ITEM(sequence, 0); + __pyx_t_13 = PyList_GET_ITEM(sequence, 1); + __pyx_t_12 = PyList_GET_ITEM(sequence, 2); + __pyx_t_11 = PyList_GET_ITEM(sequence, 3); + __pyx_t_10 = PyList_GET_ITEM(sequence, 4); + __pyx_t_9 = PyList_GET_ITEM(sequence, 5); + __pyx_t_8 = PyList_GET_ITEM(sequence, 6); + __pyx_t_7 = PyList_GET_ITEM(sequence, 7); + __pyx_t_6 = PyList_GET_ITEM(sequence, 8); + __pyx_t_15 = PyList_GET_ITEM(sequence, 9); + __pyx_t_18 = PyList_GET_ITEM(sequence, 10); + __pyx_t_19 = PyList_GET_ITEM(sequence, 11); + } + __Pyx_INCREF(__pyx_t_5); + __Pyx_INCREF(__pyx_t_13); + __Pyx_INCREF(__pyx_t_12); + __Pyx_INCREF(__pyx_t_11); + __Pyx_INCREF(__pyx_t_10); + __Pyx_INCREF(__pyx_t_9); + __Pyx_INCREF(__pyx_t_8); + __Pyx_INCREF(__pyx_t_7); + __Pyx_INCREF(__pyx_t_6); + __Pyx_INCREF(__pyx_t_15); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(__pyx_t_19); + #else + { + Py_ssize_t i; + PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; + for (i=0; i < 12; i++) { + PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_GOTREF(item); + *(temps[i]) = item; + } + } + #endif + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + } else { + Py_ssize_t index = -1; + PyObject** temps[12] = {&__pyx_t_5,&__pyx_t_13,&__pyx_t_12,&__pyx_t_11,&__pyx_t_10,&__pyx_t_9,&__pyx_t_8,&__pyx_t_7,&__pyx_t_6,&__pyx_t_15,&__pyx_t_18,&__pyx_t_19}; + __pyx_t_20 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_20); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_20); + for (index=0; index < 12; index++) { + PyObject* item = __pyx_t_16(__pyx_t_20); if (unlikely(!item)) goto __pyx_L7_unpacking_failed; + __Pyx_GOTREF(item); + *(temps[index]) = item; + } + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_20), 12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + goto __pyx_L8_unpacking_done; + __pyx_L7_unpacking_failed:; + __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 113, __pyx_L1_error) + __pyx_L8_unpacking_done:; + } + + /* "talib/_common.pxi":113 + * + * class CandleSettingType(object): + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ # <<<<<<<<<<<<<< + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + * range(12) + */ + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyLong, __pyx_t_5) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyVeryLong, __pyx_t_13) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyShort, __pyx_t_12) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_BodyDoji, __pyx_t_11) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowLong, __pyx_t_10) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryLong, __pyx_t_9) < 0) __PYX_ERR(0, 113, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowShort, __pyx_t_8) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_ShadowVeryShort, __pyx_t_7) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Near, __pyx_t_6) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Far, __pyx_t_15) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Equal, __pyx_t_18) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_AllCandleSettings, __pyx_t_19) < 0) __PYX_ERR(0, 114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "talib/_common.pxi":112 + * return value + * + * class CandleSettingType(object): # <<<<<<<<<<<<<< + * BodyLong, BodyVeryLong, BodyShort, BodyDoji, ShadowLong, ShadowVeryLong, \ + * ShadowShort, ShadowVeryShort, Near, Far, Equal, AllCandleSettings = \ + */ + __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_4, __pyx_n_s_CandleSettingType, __pyx_t_3, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_14) < 0) __PYX_ERR(0, 112, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__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; + + /* "talib/_common.pxi":117 + * range(12) + * + * CandleSettingType = CandleSettingType() # <<<<<<<<<<<<<< + * + * class RangeType(object): + */ + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_CandleSettingType); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_4 = __Pyx_PyObject_CallNoArg(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CandleSettingType, __pyx_t_4) < 0) __PYX_ERR(0, 117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_t_4 = __Pyx_PEP560_update_bases(__pyx_tuple__37); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_CalculateMetaclass(NULL, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_Py3MetaclassPrepare(__pyx_t_3, __pyx_t_4, __pyx_n_s_RangeType, __pyx_n_s_RangeType, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, (PyObject *) NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (__pyx_t_4 != __pyx_tuple__37) { + if (unlikely((PyDict_SetItemString(__pyx_t_2, "__orig_bases__", __pyx_tuple__37) < 0))) __PYX_ERR(0, 119, __pyx_L1_error) + } + + /* "talib/_common.pxi":120 + * + * class RangeType(object): + * RealBody, HighLow, Shadows = range(3) # <<<<<<<<<<<<<< + * + * RangeType = RangeType() + */ + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__38, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if ((likely(PyTuple_CheckExact(__pyx_t_14))) || (PyList_CheckExact(__pyx_t_14))) { + PyObject* sequence = __pyx_t_14; + Py_ssize_t size = __Pyx_PySequence_SIZE(sequence); + if (unlikely(size != 3)) { + if (size > 3) __Pyx_RaiseTooManyValuesError(3); + else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size); + __PYX_ERR(0, 120, __pyx_L1_error) + } + #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS + if (likely(PyTuple_CheckExact(sequence))) { + __pyx_t_19 = PyTuple_GET_ITEM(sequence, 0); + __pyx_t_18 = PyTuple_GET_ITEM(sequence, 1); + __pyx_t_15 = PyTuple_GET_ITEM(sequence, 2); + } else { + __pyx_t_19 = PyList_GET_ITEM(sequence, 0); + __pyx_t_18 = PyList_GET_ITEM(sequence, 1); + __pyx_t_15 = PyList_GET_ITEM(sequence, 2); + } + __Pyx_INCREF(__pyx_t_19); + __Pyx_INCREF(__pyx_t_18); + __Pyx_INCREF(__pyx_t_15); + #else + __pyx_t_19 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_18 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_15 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + #endif + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + } else { + Py_ssize_t index = -1; + __pyx_t_6 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_16 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); + index = 0; __pyx_t_19 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_19)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_19); + index = 1; __pyx_t_18 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_18)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_18); + index = 2; __pyx_t_15 = __pyx_t_16(__pyx_t_6); if (unlikely(!__pyx_t_15)) goto __pyx_L9_unpacking_failed; + __Pyx_GOTREF(__pyx_t_15); + if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_6), 3) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_t_16 = NULL; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + goto __pyx_L10_unpacking_done; + __pyx_L9_unpacking_failed:; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_16 = NULL; + if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index); + __PYX_ERR(0, 120, __pyx_L1_error) + __pyx_L10_unpacking_done:; + } + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_RealBody, __pyx_t_19) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_HighLow, __pyx_t_18) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (__Pyx_SetNameInClass(__pyx_t_2, __pyx_n_s_Shadows, __pyx_t_15) < 0) __PYX_ERR(0, 120, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + + /* "talib/_common.pxi":119 + * CandleSettingType = CandleSettingType() + * + * class RangeType(object): # <<<<<<<<<<<<<< + * RealBody, HighLow, Shadows = range(3) + * + */ + __pyx_t_14 = __Pyx_Py3ClassCreate(__pyx_t_3, __pyx_n_s_RangeType, __pyx_t_4, __pyx_t_2, NULL, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_14) < 0) __PYX_ERR(0, 119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 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; + + /* "talib/_common.pxi":122 + * RealBody, HighLow, Shadows = range(3) + * + * RangeType = RangeType() # <<<<<<<<<<<<<< + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_RangeType); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyObject_CallNoArg(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RangeType, __pyx_t_3) < 0) __PYX_ERR(0, 122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":124 + * RangeType = RangeType() + * + * def _ta_set_candle_settings(settingtype, rangetype, avgperiod, factor): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_SetCandleSettings(settingtype, rangetype, avgperiod, factor) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_15_ta_set_candle_settings, 0, __pyx_n_s_ta_set_candle_settings, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_set_candle_settings, __pyx_t_3) < 0) __PYX_ERR(0, 124, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_common.pxi":129 + * _ta_check_success('TA_SetCandleSettings', ret_code) + * + * def _ta_restore_candle_default_settings(settingtype): # <<<<<<<<<<<<<< + * cdef TA_RetCode ret_code + * ret_code = lib.TA_RestoreCandleDefaultSettings(settingtype) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_17_ta_restore_candle_default_settings, 0, __pyx_n_s_ta_restore_candle_default_setti, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 129, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_restore_candle_default_setti, __pyx_t_3) < 0) __PYX_ERR(0, 129, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2 + * cimport numpy as np + * from numpy import nan # <<<<<<<<<<<<<< + * from cython import boundscheck, wraparound + * + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_nan); + __Pyx_GIVEREF(__pyx_n_s_nan); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_nan)) __PYX_ERR(3, 2, __pyx_L1_error); + __pyx_t_4 = __Pyx_Import(__pyx_n_s_numpy, __pyx_t_3, -1); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_nan, __pyx_t_3) < 0) __PYX_ERR(3, 2, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":7 + * # _ta_check_success: defined in _common.pxi + * + * cdef double NaN = nan # <<<<<<<<<<<<<< + * + * cdef extern from "numpy/arrayobject.h": + */ + __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_nan); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 7, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_21 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_21 == (double)-1) && PyErr_Occurred())) __PYX_ERR(3, 7, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + __pyx_v_5talib_7_ta_lib_NaN = __pyx_t_21; + + /* "talib/_func.pxi":15 + * np.ndarray PyArray_GETCONTIGUOUS(np.ndarray) + * + * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + * + * cimport _ta_lib as lib + */ + __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(3, 15, __pyx_L1_error) + + /* "talib/_func.pxi":142 + * + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ACOS( np.ndarray real not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_19ACOS, 0, __pyx_n_s_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ACOS, __pyx_t_4) < 0) __PYX_ERR(3, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":171 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_21AD, 0, __pyx_n_s_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AD, __pyx_t_4) < 0) __PYX_ERR(3, 171, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":203 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_23ADD, 0, __pyx_n_s_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADD, __pyx_t_4) < 0) __PYX_ERR(3, 203, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":236 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): # <<<<<<<<<<<<<< + * """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 236, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":234 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADOSC( 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 ): + */ + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4)) __PYX_ERR(3, 234, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_25ADOSC, 0, __pyx_n_s_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADOSC, __pyx_t_3) < 0) __PYX_ERR(3, 234, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":271 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 271, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":269 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_27ADX, 0, __pyx_n_s_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADX, __pyx_t_3) < 0) __PYX_ERR(3, 269, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":304 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADXR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 304, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":302 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_29ADXR, 0, __pyx_n_s_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 302, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ADXR, __pyx_t_3) < 0) __PYX_ERR(3, 302, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":337 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":335 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(3, 335, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 335, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_31APO, 0, __pyx_n_s_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_APO, __pyx_t_4) < 0) __PYX_ERR(3, 335, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":370 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROON(high, low[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 370, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":368 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_33AROON, 0, __pyx_n_s_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROON, __pyx_t_4) < 0) __PYX_ERR(3, 368, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":405 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROONOSC(high, low[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 405, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":403 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_35AROONOSC, 0, __pyx_n_s_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AROONOSC, __pyx_t_4) < 0) __PYX_ERR(3, 403, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":435 + * 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 ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_37ASIN, 0, __pyx_n_s_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ASIN, __pyx_t_4) < 0) __PYX_ERR(3, 435, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":464 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATAN( np.ndarray real not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_39ATAN, 0, __pyx_n_s_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 464, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATAN, __pyx_t_4) < 0) __PYX_ERR(3, 464, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":495 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ATR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 495, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":493 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_41ATR, 0, __pyx_n_s_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ATR, __pyx_t_4) < 0) __PYX_ERR(3, 493, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":526 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_43AVGPRICE, 0, __pyx_n_s_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__65)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_AVGPRICE, __pyx_t_4) < 0) __PYX_ERR(3, 526, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":560 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): # <<<<<<<<<<<<<< + * """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 560, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":558 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_t_15 = PyTuple_New(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_14)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_2)) __PYX_ERR(3, 558, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 3, __pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_45BBANDS, 0, __pyx_n_s_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BBANDS, __pyx_t_3) < 0) __PYX_ERR(3, 558, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":600 + * @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 ): # <<<<<<<<<<<<<< + * """ BETA(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":598 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_47BETA, 0, __pyx_n_s_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BETA, __pyx_t_3) < 0) __PYX_ERR(3, 598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":631 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_49BOP, 0, __pyx_n_s_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 631, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_BOP, __pyx_t_3) < 0) __PYX_ERR(3, 631, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":665 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CCI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":663 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_51CCI, 0, __pyx_n_s_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CCI, __pyx_t_3) < 0) __PYX_ERR(3, 663, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":696 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_53CDL2CROWS, 0, __pyx_n_s_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_55CDL3BLACKCROWS, 0, __pyx_n_s_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3BLACKCROWS, __pyx_t_3) < 0) __PYX_ERR(3, 728, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_57CDL3INSIDE, 0, __pyx_n_s_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3INSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 760, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_59CDL3LINESTRIKE, 0, __pyx_n_s_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3LINESTRIKE, __pyx_t_3) < 0) __PYX_ERR(3, 792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_61CDL3OUTSIDE, 0, __pyx_n_s_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3OUTSIDE, __pyx_t_3) < 0) __PYX_ERR(3, 824, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_63CDL3STARSINSOUTH, 0, __pyx_n_s_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3STARSINSOUTH, __pyx_t_3) < 0) __PYX_ERR(3, 856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_65CDL3WHITESOLDIERS, 0, __pyx_n_s_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDL3WHITESOLDIERS, __pyx_t_3) < 0) __PYX_ERR(3, 888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":922 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 922, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_67CDLABANDONEDBABY, 0, __pyx_n_s_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLABANDONEDBABY, __pyx_t_3) < 0) __PYX_ERR(3, 920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":954 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_69CDLADVANCEBLOCK, 0, __pyx_n_s_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 954, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLADVANCEBLOCK, __pyx_t_3) < 0) __PYX_ERR(3, 954, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":986 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_71CDLBELTHOLD, 0, __pyx_n_s_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__83)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 986, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBELTHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 986, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1018 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_73CDLBREAKAWAY, 0, __pyx_n_s_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__84)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLBREAKAWAY, __pyx_t_3) < 0) __PYX_ERR(3, 1018, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_75CDLCLOSINGMARUBOZU, 0, __pyx_n_s_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__85)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCLOSINGMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1082 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_77CDLCONCEALBABYSWALL, 0, __pyx_n_s_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__86)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1082, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCONCEALBABYSWALL, __pyx_t_3) < 0) __PYX_ERR(3, 1082, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1114 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_79CDLCOUNTERATTACK, 0, __pyx_n_s_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__87)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1114, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLCOUNTERATTACK, __pyx_t_3) < 0) __PYX_ERR(3, 1114, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1148 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1146 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_81CDLDARKCLOUDCOVER, 0, __pyx_n_s_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__88)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDARKCLOUDCOVER, __pyx_t_3) < 0) __PYX_ERR(3, 1146, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1180 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_83CDLDOJI, 0, __pyx_n_s_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__89)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1180, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1180, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1212 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_85CDLDOJISTAR, 0, __pyx_n_s_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__90)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1212, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1244 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_87CDLDRAGONFLYDOJI, 0, __pyx_n_s_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__91)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1244, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLDRAGONFLYDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1244, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_89CDLENGULFING, 0, __pyx_n_s_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__92)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLENGULFING, __pyx_t_3) < 0) __PYX_ERR(3, 1276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1310 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1308 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_91CDLEVENINGDOJISTAR, 0, __pyx_n_s_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__93)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1308, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1344 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1344, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":1342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_93CDLEVENINGSTAR, 0, __pyx_n_s_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__94)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLEVENINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 1342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1376 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_95CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__95)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1376, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGAPSIDESIDEWHITE, __pyx_t_3) < 0) __PYX_ERR(3, 1376, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1408 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_97CDLGRAVESTONEDOJI, 0, __pyx_n_s_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__96)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1408, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLGRAVESTONEDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1408, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1440 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_99CDLHAMMER, 0, __pyx_n_s_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__97)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1440, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1440, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1472 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_101CDLHANGINGMAN, 0, __pyx_n_s_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__98)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1472, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHANGINGMAN, __pyx_t_3) < 0) __PYX_ERR(3, 1472, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1504 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_103CDLHARAMI, 0, __pyx_n_s_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__99)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1504, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMI, __pyx_t_3) < 0) __PYX_ERR(3, 1504, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1536 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_105CDLHARAMICROSS, 0, __pyx_n_s_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__100)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1536, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHARAMICROSS, __pyx_t_3) < 0) __PYX_ERR(3, 1536, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1568 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_107CDLHIGHWAVE, 0, __pyx_n_s_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__101)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1568, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIGHWAVE, __pyx_t_3) < 0) __PYX_ERR(3, 1568, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1600 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_109CDLHIKKAKE, 0, __pyx_n_s_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__102)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1600, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKE, __pyx_t_3) < 0) __PYX_ERR(3, 1600, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1632 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_111CDLHIKKAKEMOD, 0, __pyx_n_s_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__103)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1632, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHIKKAKEMOD, __pyx_t_3) < 0) __PYX_ERR(3, 1632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1664 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_113CDLHOMINGPIGEON, 0, __pyx_n_s_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__104)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1664, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLHOMINGPIGEON, __pyx_t_3) < 0) __PYX_ERR(3, 1664, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1696 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_115CDLIDENTICAL3CROWS, 0, __pyx_n_s_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__105)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1696, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLIDENTICAL3CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 1696, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1728 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_117CDLINNECK, 0, __pyx_n_s_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__106)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1728, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINNECK, __pyx_t_3) < 0) __PYX_ERR(3, 1728, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1760 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_119CDLINVERTEDHAMMER, 0, __pyx_n_s_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__107)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1760, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLINVERTEDHAMMER, __pyx_t_3) < 0) __PYX_ERR(3, 1760, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1792 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_121CDLKICKING, 0, __pyx_n_s_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__108)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKING, __pyx_t_3) < 0) __PYX_ERR(3, 1792, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1824 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_123CDLKICKINGBYLENGTH, 0, __pyx_n_s_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__109)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1824, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLKICKINGBYLENGTH, __pyx_t_3) < 0) __PYX_ERR(3, 1824, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1856 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_125CDLLADDERBOTTOM, 0, __pyx_n_s_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__110)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1856, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLADDERBOTTOM, __pyx_t_3) < 0) __PYX_ERR(3, 1856, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1888 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_127CDLLONGLEGGEDDOJI, 0, __pyx_n_s_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__111)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1888, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLEGGEDDOJI, __pyx_t_3) < 0) __PYX_ERR(3, 1888, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1920 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_129CDLLONGLINE, 0, __pyx_n_s_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__112)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1920, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLLONGLINE, __pyx_t_3) < 0) __PYX_ERR(3, 1920, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1952 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_131CDLMARUBOZU, 0, __pyx_n_s_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__113)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1952, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMARUBOZU, __pyx_t_3) < 0) __PYX_ERR(3, 1952, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":1984 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_133CDLMATCHINGLOW, 0, __pyx_n_s_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__114)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 1984, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATCHINGLOW, __pyx_t_3) < 0) __PYX_ERR(3, 1984, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2018 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLMATHOLD(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2018, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2016 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_135CDLMATHOLD, 0, __pyx_n_s_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__115)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMATHOLD, __pyx_t_3) < 0) __PYX_ERR(3, 2016, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2052 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2050 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_137CDLMORNINGDOJISTAR, 0, __pyx_n_s_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__116)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGDOJISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2050, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2086 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_3 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2086, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2084 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_139CDLMORNINGSTAR, 0, __pyx_n_s_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__117)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLMORNINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2084, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2118 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_141CDLONNECK, 0, __pyx_n_s_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__118)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2118, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLONNECK, __pyx_t_3) < 0) __PYX_ERR(3, 2118, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2150 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_143CDLPIERCING, 0, __pyx_n_s_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__119)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2150, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLPIERCING, __pyx_t_3) < 0) __PYX_ERR(3, 2150, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2182 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_145CDLRICKSHAWMAN, 0, __pyx_n_s_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__120)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2182, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRICKSHAWMAN, __pyx_t_3) < 0) __PYX_ERR(3, 2182, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2214 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_147CDLRISEFALL3METHODS, 0, __pyx_n_s_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__121)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLRISEFALL3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2214, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2246 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_149CDLSEPARATINGLINES, 0, __pyx_n_s_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__122)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2246, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSEPARATINGLINES, __pyx_t_3) < 0) __PYX_ERR(3, 2246, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2278 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_151CDLSHOOTINGSTAR, 0, __pyx_n_s_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__123)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHOOTINGSTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2278, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2310 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_153CDLSHORTLINE, 0, __pyx_n_s_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__124)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSHORTLINE, __pyx_t_3) < 0) __PYX_ERR(3, 2310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2342 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_155CDLSPINNINGTOP, 0, __pyx_n_s_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__125)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2342, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSPINNINGTOP, __pyx_t_3) < 0) __PYX_ERR(3, 2342, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2374 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_157CDLSTALLEDPATTERN, 0, __pyx_n_s_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__126)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTALLEDPATTERN, __pyx_t_3) < 0) __PYX_ERR(3, 2374, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2406 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_159CDLSTICKSANDWICH, 0, __pyx_n_s_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__127)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2406, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLSTICKSANDWICH, __pyx_t_3) < 0) __PYX_ERR(3, 2406, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2438 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_161CDLTAKURI, 0, __pyx_n_s_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__128)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2438, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTAKURI, __pyx_t_3) < 0) __PYX_ERR(3, 2438, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2470 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_163CDLTASUKIGAP, 0, __pyx_n_s_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__129)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2470, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTASUKIGAP, __pyx_t_3) < 0) __PYX_ERR(3, 2470, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2502 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_165CDLTHRUSTING, 0, __pyx_n_s_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__130)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTHRUSTING, __pyx_t_3) < 0) __PYX_ERR(3, 2502, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2534 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_167CDLTRISTAR, 0, __pyx_n_s_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__131)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2534, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLTRISTAR, __pyx_t_3) < 0) __PYX_ERR(3, 2534, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2566 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_169CDLUNIQUE3RIVER, 0, __pyx_n_s_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__132)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2566, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUNIQUE3RIVER, __pyx_t_3) < 0) __PYX_ERR(3, 2566, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2598 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_171CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__133)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2598, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLUPSIDEGAP2CROWS, __pyx_t_3) < 0) __PYX_ERR(3, 2598, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2630 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_173CDLXSIDEGAP3METHODS, 0, __pyx_n_s_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__134)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2630, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CDLXSIDEGAP3METHODS, __pyx_t_3) < 0) __PYX_ERR(3, 2630, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2662 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CEIL( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_175CEIL, 0, __pyx_n_s_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__135)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2662, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CEIL, __pyx_t_3) < 0) __PYX_ERR(3, 2662, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2693 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CMO(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2693, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2691 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_177CMO, 0, __pyx_n_s_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__137)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CMO, __pyx_t_3) < 0) __PYX_ERR(3, 2691, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2724 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CORREL(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2722 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_179CORREL, 0, __pyx_n_s_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__138)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_CORREL, __pyx_t_3) < 0) __PYX_ERR(3, 2722, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2755 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COS( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_181COS, 0, __pyx_n_s_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__139)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COS, __pyx_t_3) < 0) __PYX_ERR(3, 2755, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def COSH( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_183COSH, 0, __pyx_n_s_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__140)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_COSH, __pyx_t_3) < 0) __PYX_ERR(3, 2784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2815 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DEMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2815, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2813 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_185DEMA, 0, __pyx_n_s_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__141)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DEMA, __pyx_t_3) < 0) __PYX_ERR(3, 2813, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2844 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_187DIV, 0, __pyx_n_s_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__142)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2844, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DIV, __pyx_t_3) < 0) __PYX_ERR(3, 2844, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2877 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2877, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2875 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_189DX, 0, __pyx_n_s_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__143)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_DX, __pyx_t_3) < 0) __PYX_ERR(3, 2875, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2910 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ EMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2910, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":2908 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_191EMA, 0, __pyx_n_s_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__144)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EMA, __pyx_t_3) < 0) __PYX_ERR(3, 2908, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2939 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def EXP( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_193EXP, 0, __pyx_n_s_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__145)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_EXP, __pyx_t_3) < 0) __PYX_ERR(3, 2939, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2968 + * return outreal + * + * @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 ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_195FLOOR, 0, __pyx_n_s_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__146)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2968, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_FLOOR, __pyx_t_3) < 0) __PYX_ERR(3, 2968, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":2997 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_197HT_DCPERIOD, 0, __pyx_n_s_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__147)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 2997, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPERIOD, __pyx_t_3) < 0) __PYX_ERR(3, 2997, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3026 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_199HT_DCPHASE, 0, __pyx_n_s_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__148)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3026, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_DCPHASE, __pyx_t_3) < 0) __PYX_ERR(3, 3026, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3055 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_PHASOR( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_201HT_PHASOR, 0, __pyx_n_s_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__150)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_PHASOR, __pyx_t_3) < 0) __PYX_ERR(3, 3055, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3087 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_SINE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_203HT_SINE, 0, __pyx_n_s_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__152)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_SINE, __pyx_t_3) < 0) __PYX_ERR(3, 3087, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3119 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_205HT_TRENDLINE, 0, __pyx_n_s_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__153)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3119, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDLINE, __pyx_t_3) < 0) __PYX_ERR(3, 3119, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3148 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_207HT_TRENDMODE, 0, __pyx_n_s_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__155)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_HT_TRENDMODE, __pyx_t_3) < 0) __PYX_ERR(3, 3148, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3179 + * @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=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3177 + * return outinteger + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_209KAMA, 0, __pyx_n_s_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__156)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_KAMA, __pyx_t_3) < 0) __PYX_ERR(3, 3177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3210 + * @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 ): # <<<<<<<<<<<<<< + * """ LINEARREG(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3210, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3208 + * return outreal + * + * @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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_211LINEARREG, 0, __pyx_n_s_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__157)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG, __pyx_t_3) < 0) __PYX_ERR(3, 3208, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3241 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_ANGLE(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3241, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3239 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_213LINEARREG_ANGLE, 0, __pyx_n_s_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__158)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_ANGLE, __pyx_t_3) < 0) __PYX_ERR(3, 3239, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3272 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_INTERCEPT(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3272, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3270 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_215LINEARREG_INTERCEPT, 0, __pyx_n_s_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__159)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3270, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_INTERCEPT, __pyx_t_3) < 0) __PYX_ERR(3, 3270, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3303 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_SLOPE(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3301 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_217LINEARREG_SLOPE, 0, __pyx_n_s_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__160)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LINEARREG_SLOPE, __pyx_t_3) < 0) __PYX_ERR(3, 3301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3332 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LN( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_219LN, 0, __pyx_n_s_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__161)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3332, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LN, __pyx_t_3) < 0) __PYX_ERR(3, 3332, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3361 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def LOG10( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_221LOG10, 0, __pyx_n_s_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__162)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3361, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_LOG10, __pyx_t_3) < 0) __PYX_ERR(3, 3361, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3392 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MA(real[, timeperiod=?, matype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + + /* "talib/_func.pxi":3390 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): + */ + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3)) __PYX_ERR(3, 3390, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_223MA, 0, __pyx_n_s_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__164)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MA, __pyx_t_15) < 0) __PYX_ERR(3, 3390, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + + /* "talib/_func.pxi":3424 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) + * + */ + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3424, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":3422 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_15)) __PYX_ERR(3, 3422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(3, 3422, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_225MACD, 0, __pyx_n_s_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__166)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACD, __pyx_t_3) < 0) __PYX_ERR(3, 3422, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":3463 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): # <<<<<<<<<<<<<< + * """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3461 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): + */ + __pyx_t_19 = PyTuple_New(6); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_3)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_15)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_4)) __PYX_ERR(3, 3461, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_227MACDEXT, 0, __pyx_n_s_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__168)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDEXT, __pyx_t_18) < 0) __PYX_ERR(3, 3461, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3505 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACDFIX(real[, signalperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3503 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_229MACDFIX, 0, __pyx_n_s_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__170)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MACDFIX, __pyx_t_18) < 0) __PYX_ERR(3, 3503, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3542 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): # <<<<<<<<<<<<<< + * """ MAMA(real[, fastlimit=?, slowlimit=?]) + * + */ + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + + /* "talib/_func.pxi":3540 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): + */ + __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_18)) __PYX_ERR(3, 3540, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_19 = 0; + __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_231MAMA, 0, __pyx_n_s_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__172)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAMA, __pyx_t_19) < 0) __PYX_ERR(3, 3540, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "talib/_func.pxi":3577 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) + * + */ + __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3575 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): + */ + __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_19)) __PYX_ERR(3, 3575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_4)) __PYX_ERR(3, 3575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error); + __pyx_t_19 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_233MAVP, 0, __pyx_n_s_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__174)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAVP, __pyx_t_18) < 0) __PYX_ERR(3, 3575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3612 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3610 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_235MAX, 0, __pyx_n_s_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__175)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAX, __pyx_t_18) < 0) __PYX_ERR(3, 3610, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3643 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAXINDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3641 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_237MAXINDEX, 0, __pyx_n_s_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__177)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3641, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3675 + * return outinteger + * + * @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 ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_239MEDPRICE, 0, __pyx_n_s_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__179)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MEDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3675, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3707 + * @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=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3707, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3705 + * 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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_241MFI, 0, __pyx_n_s_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__181)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MFI, __pyx_t_18) < 0) __PYX_ERR(3, 3705, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3741 + * @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=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3741, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3739 + * 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 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_243MIDPOINT, 0, __pyx_n_s_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__182)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPOINT, __pyx_t_18) < 0) __PYX_ERR(3, 3739, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3772 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIDPRICE(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3772, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3770 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_245MIDPRICE, 0, __pyx_n_s_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__183)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIDPRICE, __pyx_t_18) < 0) __PYX_ERR(3, 3770, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3804 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIN(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3804, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3802 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MIN( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_247MIN, 0, __pyx_n_s_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__184)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MIN, __pyx_t_18) < 0) __PYX_ERR(3, 3802, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3835 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MININDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3835, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3833 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_249MININDEX, 0, __pyx_n_s_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__185)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MININDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3833, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3869 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3869, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_251MINMAX, 0, __pyx_n_s_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__187)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAX, __pyx_t_18) < 0) __PYX_ERR(3, 3867, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3903 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAXINDEX(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3901 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_253MINMAXINDEX, 0, __pyx_n_s_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__189)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINMAXINDEX, __pyx_t_18) < 0) __PYX_ERR(3, 3901, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3943 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3943, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3941 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_255MINUS_DI, 0, __pyx_n_s_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__190)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 3941, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":3976 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DM(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3976, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":3974 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_257MINUS_DM, 0, __pyx_n_s_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__191)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MINUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 3974, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4008 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MOM(real[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4008, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":4006 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_259MOM, 0, __pyx_n_s_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__192)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MOM, __pyx_t_18) < 0) __PYX_ERR(3, 4006, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4037 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def MULT( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_261MULT, 0, __pyx_n_s_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__193)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4037, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_MULT, __pyx_t_18) < 0) __PYX_ERR(3, 4037, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4070 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ NATR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4070, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":4068 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_263NATR, 0, __pyx_n_s_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__194)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_NATR, __pyx_t_18) < 0) __PYX_ERR(3, 4068, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4101 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def OBV( np.ndarray real not None , np.ndarray volume not None ): + */ + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_265OBV, 0, __pyx_n_s_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__196)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OBV, __pyx_t_18) < 0) __PYX_ERR(3, 4101, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4134 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4134, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":4132 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_267PLUS_DI, 0, __pyx_n_s_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__197)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DI, __pyx_t_18) < 0) __PYX_ERR(3, 4132, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4167 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DM(high, low[, timeperiod=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4167, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_func.pxi":4165 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_15 = PyTuple_New(1); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_269PLUS_DM, 0, __pyx_n_s_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__198)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4165, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PLUS_DM, __pyx_t_18) < 0) __PYX_ERR(3, 4165, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_func.pxi":4199 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) + * + */ + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4199, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4197 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_t_19 = PyTuple_New(3); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18)) __PYX_ERR(3, 4197, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_15)) __PYX_ERR(3, 4197, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_271PPO, 0, __pyx_n_s_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__199)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PPO, __pyx_t_4) < 0) __PYX_ERR(3, 4197, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4232 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROC(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4232, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4230 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROC( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_273ROC, 0, __pyx_n_s_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__200)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROC, __pyx_t_4) < 0) __PYX_ERR(3, 4230, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4263 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCP(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4263, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4261 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCP( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_275ROCP, 0, __pyx_n_s_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__201)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCP, __pyx_t_4) < 0) __PYX_ERR(3, 4261, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4294 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4294, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4292 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_277ROCR, 0, __pyx_n_s_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__202)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR, __pyx_t_4) < 0) __PYX_ERR(3, 4292, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4325 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR100(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4325, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4323 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_279ROCR100, 0, __pyx_n_s_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__203)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ROCR100, __pyx_t_4) < 0) __PYX_ERR(3, 4323, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4356 + * @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 ): # <<<<<<<<<<<<<< + * """ RSI(real[, timeperiod=?]) + * + */ + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4356, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + + /* "talib/_func.pxi":4354 + * 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 ): + */ + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_281RSI, 0, __pyx_n_s_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__204)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_RSI, __pyx_t_4) < 0) __PYX_ERR(3, 4354, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + + /* "talib/_func.pxi":4387 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): # <<<<<<<<<<<<<< + * """ SAR(high, low[, acceleration=?, maximum=?]) + * + */ + __pyx_t_4 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_19 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4387, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + + /* "talib/_func.pxi":4385 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): + */ + __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4)) __PYX_ERR(3, 4385, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_19 = 0; + __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_283SAR, 0, __pyx_n_s_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__206)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAR, __pyx_t_19) < 0) __PYX_ERR(3, 4385, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "talib/_func.pxi":4420 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): # <<<<<<<<<<<<<< + * """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) + * + */ + __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4420, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_func.pxi":4418 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): + */ + __pyx_t_7 = PyTuple_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_18)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_2)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 5, __pyx_t_14)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 6, __pyx_t_3)) __PYX_ERR(3, 4418, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 7, __pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error); + __pyx_t_19 = 0; + __pyx_t_15 = 0; + __pyx_t_4 = 0; + __pyx_t_18 = 0; + __pyx_t_2 = 0; + __pyx_t_14 = 0; + __pyx_t_3 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_285SAREXT, 0, __pyx_n_s_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__208)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SAREXT, __pyx_t_6) < 0) __PYX_ERR(3, 4418, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4457 + * return outreal + * + * @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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_287SIN, 0, __pyx_n_s_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__209)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4457, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SIN, __pyx_t_6) < 0) __PYX_ERR(3, 4457, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4486 + * 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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_289SINH, 0, __pyx_n_s_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__210)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4486, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SINH, __pyx_t_6) < 0) __PYX_ERR(3, 4486, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4517 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ SMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4517, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_func.pxi":4515 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_291SMA, 0, __pyx_n_s_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__211)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4515, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SMA, __pyx_t_6) < 0) __PYX_ERR(3, 4515, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4546 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def SQRT( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_293SQRT, 0, __pyx_n_s_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__212)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4546, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SQRT, __pyx_t_6) < 0) __PYX_ERR(3, 4546, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":4577 + * @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 ): # <<<<<<<<<<<<<< + * """ STDDEV(real[, timeperiod=?, nbdev=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "talib/_func.pxi":4575 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(3, 4575, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_295STDDEV, 0, __pyx_n_s_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__214)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STDDEV, __pyx_t_7) < 0) __PYX_ERR(3, 4575, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_func.pxi":4609 + * @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=?]) + * + */ + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4609, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_func.pxi":4607 + * 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 ): + */ + __pyx_t_18 = PyTuple_New(5); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_6)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 3, __pyx_t_14)) __PYX_ERR(3, 4607, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 4, __pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_3 = 0; + __pyx_t_6 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_297STOCH, 0, __pyx_n_s_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__216)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCH, __pyx_t_2) < 0) __PYX_ERR(3, 4607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_func.pxi":4649 + * @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=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + + /* "talib/_func.pxi":4647 + * 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 ): + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2)) __PYX_ERR(3, 4647, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 4647, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_18 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_299STOCHF, 0, __pyx_n_s_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__218)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHF, __pyx_t_14) < 0) __PYX_ERR(3, 4647, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_func.pxi":4687 + * @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=?]) + * + */ + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_func.pxi":4685 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(3, 4685, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_6)) __PYX_ERR(3, 4685, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_18)) __PYX_ERR(3, 4685, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error); + __pyx_t_14 = 0; + __pyx_t_6 = 0; + __pyx_t_18 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_301STOCHRSI, 0, __pyx_n_s_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__220)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_STOCHRSI, __pyx_t_2) < 0) __PYX_ERR(3, 4685, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_func.pxi":4722 + * 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 ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_303SUB, 0, __pyx_n_s_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__221)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4722, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUB, __pyx_t_2) < 0) __PYX_ERR(3, 4722, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_func.pxi":4755 + * @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=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4755, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_func.pxi":4753 + * 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 ): + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_305SUM, 0, __pyx_n_s_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__222)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4753, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_SUM, __pyx_t_2) < 0) __PYX_ERR(3, 4753, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_func.pxi":4786 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): # <<<<<<<<<<<<<< + * """ T3(real[, timeperiod=?, vfactor=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 4786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4786, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":4784 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): + */ + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 4784, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_307T3, 0, __pyx_n_s_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__224)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_T3, __pyx_t_3) < 0) __PYX_ERR(3, 4784, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4816 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TAN( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_309TAN, 0, __pyx_n_s_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__225)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TAN, __pyx_t_3) < 0) __PYX_ERR(3, 4816, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4845 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TANH( np.ndarray real not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_311TANH, 0, __pyx_n_s_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__226)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TANH, __pyx_t_3) < 0) __PYX_ERR(3, 4845, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4876 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TEMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":4874 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_313TEMA, 0, __pyx_n_s_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__227)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TEMA, __pyx_t_3) < 0) __PYX_ERR(3, 4874, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4905 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_315TRANGE, 0, __pyx_n_s_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__229)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TRANGE, __pyx_t_3) < 0) __PYX_ERR(3, 4905, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4938 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIMA(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4938, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":4936 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_317TRIMA, 0, __pyx_n_s_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__230)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TRIMA, __pyx_t_3) < 0) __PYX_ERR(3, 4936, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":4969 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIX(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4969, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":4967 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_319TRIX, 0, __pyx_n_s_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__231)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TRIX, __pyx_t_3) < 0) __PYX_ERR(3, 4967, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":5000 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TSF(real[, timeperiod=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5000, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + + /* "talib/_func.pxi":4998 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TSF( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_321TSF, 0, __pyx_n_s_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__232)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_GOTREF(__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_d, __pyx_n_s_TSF, __pyx_t_3) < 0) __PYX_ERR(3, 4998, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":5029 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_323TYPPRICE, 0, __pyx_n_s_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__233)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TYPPRICE, __pyx_t_3) < 0) __PYX_ERR(3, 5029, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_func.pxi":5062 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): # <<<<<<<<<<<<<< + * """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) + * + */ + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5062, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_func.pxi":5060 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): + */ + __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5060, __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)) __PYX_ERR(3, 5060, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_18)) __PYX_ERR(3, 5060, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_18 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_325ULTOSC, 0, __pyx_n_s_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__235)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ULTOSC, __pyx_t_2) < 0) __PYX_ERR(3, 5060, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_func.pxi":5097 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): # <<<<<<<<<<<<<< + * """ VAR(real[, timeperiod=?, nbdev=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(3, 5097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5097, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_func.pxi":5095 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(3, 5095, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_327VAR, 0, __pyx_n_s_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__236)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5095, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_VAR, __pyx_t_6) < 0) __PYX_ERR(3, 5095, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":5127 + * return outreal + * + * @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 ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_329WCLPRICE, 0, __pyx_n_s_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__237)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5127, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WCLPRICE, __pyx_t_6) < 0) __PYX_ERR(3, 5127, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":5160 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WILLR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5160, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_func.pxi":5158 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_331WILLR, 0, __pyx_n_s_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__238)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5158, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WILLR, __pyx_t_6) < 0) __PYX_ERR(3, 5158, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":5193 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_func.pxi":5191 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(3, 5191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_333WMA, 0, __pyx_n_s_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__239)); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5191, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_WMA, __pyx_t_6) < 0) __PYX_ERR(3, 5191, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_func.pxi":5222 + * return outreal + * + * __TA_FUNCTION_NAMES__ = ["ACOS","AD","ADD","ADOSC","ADX","ADXR","APO","AROON","AROONOSC","ASIN","ATAN","ATR","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","CMO","CORREL","COS","COSH","DEMA","DIV","DX","EMA","EXP","FLOOR","HT_DCPERIOD","HT_DCPHASE","HT_PHASOR","HT_SINE","HT_TRENDLINE","HT_TRENDMODE","KAMA","LINEARREG","LINEARREG_ANGLE","LINEARREG_INTERCEPT","LINEARREG_SLOPE","LN","LOG10","MA","MACD","MACDEXT","MACDFIX","MAMA","MAVP","MAX","MAXINDEX","MEDPRICE","MFI","MIDPOINT","MIDPRICE","MIN","MININDEX","MINMAX","MINMAXINDEX","MINUS_DI","MINUS_DM","MOM","MULT","NATR","OBV","PLUS_DI","PLUS_DM","PPO","ROC","ROCP","ROCR","ROCR100","RSI","SAR","SAREXT","SIN","SINH","SMA","SQRT","STDDEV","STOCH","STOCHF","STOCHRSI","SUB","SUM","T3","TAN","TANH","TEMA","TRANGE","TRIMA","TRIX","TSF","TYPPRICE","ULTOSC","VAR","WCLPRICE","WILLR","WMA"] # <<<<<<<<<<<<<< + */ + __pyx_t_6 = PyList_New(158); if (unlikely(!__pyx_t_6)) __PYX_ERR(3, 5222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_n_s_ACOS); + __Pyx_GIVEREF(__pyx_n_s_ACOS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_ACOS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AD); + __Pyx_GIVEREF(__pyx_n_s_AD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_AD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADD); + __Pyx_GIVEREF(__pyx_n_s_ADD); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 2, __pyx_n_s_ADD)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADOSC); + __Pyx_GIVEREF(__pyx_n_s_ADOSC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 3, __pyx_n_s_ADOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADX); + __Pyx_GIVEREF(__pyx_n_s_ADX); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 4, __pyx_n_s_ADX)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ADXR); + __Pyx_GIVEREF(__pyx_n_s_ADXR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 5, __pyx_n_s_ADXR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_APO); + __Pyx_GIVEREF(__pyx_n_s_APO); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 6, __pyx_n_s_APO)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AROON); + __Pyx_GIVEREF(__pyx_n_s_AROON); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 7, __pyx_n_s_AROON)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AROONOSC); + __Pyx_GIVEREF(__pyx_n_s_AROONOSC); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 8, __pyx_n_s_AROONOSC)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ASIN); + __Pyx_GIVEREF(__pyx_n_s_ASIN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 9, __pyx_n_s_ASIN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATAN); + __Pyx_GIVEREF(__pyx_n_s_ATAN); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 10, __pyx_n_s_ATAN)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_ATR); + __Pyx_GIVEREF(__pyx_n_s_ATR); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 11, __pyx_n_s_ATR)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_AVGPRICE); + __Pyx_GIVEREF(__pyx_n_s_AVGPRICE); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 12, __pyx_n_s_AVGPRICE)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BBANDS); + __Pyx_GIVEREF(__pyx_n_s_BBANDS); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 13, __pyx_n_s_BBANDS)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BETA); + __Pyx_GIVEREF(__pyx_n_s_BETA); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 14, __pyx_n_s_BETA)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_BOP); + __Pyx_GIVEREF(__pyx_n_s_BOP); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 15, __pyx_n_s_BOP)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CCI); + __Pyx_GIVEREF(__pyx_n_s_CCI); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 16, __pyx_n_s_CCI)) __PYX_ERR(3, 5222, __pyx_L1_error); + __Pyx_INCREF(__pyx_n_s_CDL2CROWS); + __Pyx_GIVEREF(__pyx_n_s_CDL2CROWS); if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 17, __pyx_n_s_CDL2CROWS)) __PYX_ERR(3, 5222, __pyx_L1_error); __Pyx_INCREF(__pyx_n_s_CDL3BLACKCROWS); __Pyx_GIVEREF(__pyx_n_s_CDL3BLACKCROWS); @@ -84859,1680 +135312,4997 @@ if (!__Pyx_RefNanny) { if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNCTION_NAMES, __pyx_t_6) < 0) __PYX_ERR(3, 5222, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":4 - * This file Copyright (c) 2013 Brian A Cappello - * ''' - * import math # <<<<<<<<<<<<<< - * import threading - * try: + /* "talib/_abstract.pxi":4 + * This file Copyright (c) 2013 Brian A Cappello + * ''' + * import math # <<<<<<<<<<<<<< + * import threading + * try: + */ + __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_6) < 0) __PYX_ERR(1, 4, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":5 + * ''' + * import math + * import threading # <<<<<<<<<<<<<< + * try: + * from collections import OrderedDict + */ + __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_6) < 0) __PYX_ERR(1, 5, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_24); + /*try:*/ { + + /* "talib/_abstract.pxi":7 + * import threading + * try: + * from collections import OrderedDict # <<<<<<<<<<<<<< + * except ImportError: # handle python 2.6 and earlier + * from ordereddict import OrderedDict + */ + __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_INCREF(__pyx_n_s_OrderedDict); + __Pyx_GIVEREF(__pyx_n_s_OrderedDict); + if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 7, __pyx_L11_error); + __pyx_t_18 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_6, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_18, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_6) < 0) __PYX_ERR(1, 7, __pyx_L11_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + goto __pyx_L16_try_end; + __pyx_L11_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "talib/_abstract.pxi":8 + * try: + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier # <<<<<<<<<<<<<< + * from ordereddict import OrderedDict + * from cython.operator cimport dereference as deref + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 8, __pyx_L13_except_error) + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_2); + + /* "talib/_abstract.pxi":9 + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + * from ordereddict import OrderedDict # <<<<<<<<<<<<<< + * from cython.operator cimport dereference as deref + * import numpy + */ + __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_INCREF(__pyx_n_s_OrderedDict); + __Pyx_GIVEREF(__pyx_n_s_OrderedDict); + if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 9, __pyx_L13_except_error); + __pyx_t_14 = __Pyx_Import(__pyx_n_s_ordereddict, __pyx_t_3, -1); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_14, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_3) < 0) __PYX_ERR(1, 9, __pyx_L13_except_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L12_exception_handled; + } + goto __pyx_L13_except_error; + + /* "talib/_abstract.pxi":6 + * import math + * import threading + * try: # <<<<<<<<<<<<<< + * from collections import OrderedDict + * except ImportError: # handle python 2.6 and earlier + */ + __pyx_L13_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + goto __pyx_L1_error; + __pyx_L12_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + __pyx_L16_try_end:; + } + + /* "talib/_abstract.pxi":11 + * from ordereddict import OrderedDict + * from cython.operator cimport dereference as deref + * import numpy # <<<<<<<<<<<<<< + * import sys + * + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_2) < 0) __PYX_ERR(1, 11, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":12 + * from cython.operator cimport dereference as deref + * import numpy + * import sys # <<<<<<<<<<<<<< + * + * cimport numpy as np + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(1, 12, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":18 + * # NOTE: _ta_check_success, MA_Type is defined in _common.pxi + * + * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + * + * # lookup for TALIB input parameters which don't define expected price series inputs + */ + __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(1, 18, __pyx_L1_error) + + /* "talib/_abstract.pxi":21 + * + * # lookup for TALIB input parameters which don't define expected price series inputs + * __INPUT_PRICE_SERIES_DEFAULTS = {'price': 'close', # <<<<<<<<<<<<<< + * 'price0': 'high', + * 'price1': 'low', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 21, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price, __pyx_n_s_close) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price0, __pyx_n_s_high) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price1, __pyx_n_s_low) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_periods, __pyx_n_s_periods) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_2) < 0) __PYX_ERR(1, 21, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":27 + * } + * + * __INPUT_ARRAYS_TYPES = [dict] # <<<<<<<<<<<<<< + * __ARRAY_TYPES = [np.ndarray] + * + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 27, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF((PyObject *)(&PyDict_Type)); + __Pyx_GIVEREF((PyObject *)(&PyDict_Type)); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyDict_Type)))) __PYX_ERR(1, 27, __pyx_L1_error); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 27, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":28 + * + * __INPUT_ARRAYS_TYPES = [dict] + * __ARRAY_TYPES = [np.ndarray] # <<<<<<<<<<<<<< + * + * # allow use of pandas.DataFrame for input arrays + */ + __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_INCREF((PyObject *)__pyx_ptype_5numpy_ndarray); + __Pyx_GIVEREF((PyObject *)__pyx_ptype_5numpy_ndarray); + if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_5numpy_ndarray))) __PYX_ERR(1, 28, __pyx_L1_error); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 28, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_24, &__pyx_t_23, &__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_1); + /*try:*/ { + + /* "talib/_abstract.pxi":32 + * # allow use of pandas.DataFrame for input arrays + * try: + * import pandas # <<<<<<<<<<<<<< + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_pandas, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 32, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_2) < 0) __PYX_ERR(1, 32, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":33 + * try: + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) # <<<<<<<<<<<<<< + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 33, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_abstract.pxi":34 + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) # <<<<<<<<<<<<<< + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_18, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 34, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":35 + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame # <<<<<<<<<<<<<< + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, __pyx_t_18) < 0) __PYX_ERR(1, 35, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_abstract.pxi":36 + * __ARRAY_TYPES.append(pandas.Series) + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series # <<<<<<<<<<<<<< + * except ImportError as import_error: + * try: + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_pandas); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, __pyx_t_6) < 0) __PYX_ERR(1, 36, __pyx_L19_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + } + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + goto __pyx_L24_try_end; + __pyx_L19_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "talib/_abstract.pxi":37 + * __PANDAS_DATAFRAME = pandas.DataFrame + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: # <<<<<<<<<<<<<< + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_18, &__pyx_t_2) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_18) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) + + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_28); + /*try:*/ { + + /* "talib/_abstract.pxi":39 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_30 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_31 = (!__pyx_t_30); + if (!__pyx_t_31) { + } else { + __pyx_t_29 = __pyx_t_31; + goto __pyx_L36_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_31 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_pandas, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(1, 39, __pyx_L27_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_29 = __pyx_t_31; + __pyx_L36_bool_binop_done:; + if (unlikely(__pyx_t_29)) { + + /* "talib/_abstract.pxi":41 + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + * raise import_error # <<<<<<<<<<<<<< + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 41, __pyx_L27_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_Raise(__pyx_t_14, 0, 0, 0); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __PYX_ERR(1, 41, __pyx_L27_error) + + /* "talib/_abstract.pxi":39 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + } + + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + } + __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; + goto __pyx_L34_try_end; + __pyx_L27_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __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; + + /* "talib/_abstract.pxi":43 + * raise import_error + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); + if (__pyx_t_22) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L28_exception_handled; + } + goto __pyx_L29_except_error; + + /* "talib/_abstract.pxi":38 + * __PANDAS_SERIES = pandas.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + * # Propagate the error when the module exists but failed to be imported. + */ + __pyx_L29_except_error:; + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); + goto __pyx_L21_except_error; + __pyx_L28_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); + __pyx_L34_try_end:; + } + + /* "talib/_abstract.pxi":46 + * pass + * + * __PANDAS_DATAFRAME = None # <<<<<<<<<<<<<< + * __PANDAS_SERIES = None + * + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 46, __pyx_L21_except_error) + + /* "talib/_abstract.pxi":47 + * + * __PANDAS_DATAFRAME = None + * __PANDAS_SERIES = None # <<<<<<<<<<<<<< + * + * # allow use of polars.DataFrame for input arrays + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, Py_None) < 0) __PYX_ERR(1, 47, __pyx_L21_except_error) + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L20_exception_handled; + } + goto __pyx_L21_except_error; + + /* "talib/_abstract.pxi":31 + * + * # allow use of pandas.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import pandas + * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + */ + __pyx_L21_except_error:; + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); + goto __pyx_L1_error; + __pyx_L20_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); + __pyx_L24_try_end:; + } + + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); + __Pyx_XGOTREF(__pyx_t_1); + __Pyx_XGOTREF(__pyx_t_23); + __Pyx_XGOTREF(__pyx_t_24); + /*try:*/ { + + /* "talib/_abstract.pxi":51 + * # allow use of polars.DataFrame for input arrays + * try: + * import polars # <<<<<<<<<<<<<< + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) + */ + __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_polars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_polars, __pyx_t_2) < 0) __PYX_ERR(1, 51, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":52 + * try: + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) # <<<<<<<<<<<<<< + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 52, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":53 + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) # <<<<<<<<<<<<<< + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 53, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_abstract.pxi":54 + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame # <<<<<<<<<<<<<< + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + */ + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, __pyx_t_6) < 0) __PYX_ERR(1, 54, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":55 + * __ARRAY_TYPES.append(polars.Series) + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series # <<<<<<<<<<<<<< + * except ImportError as import_error: + * try: + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, __pyx_t_18) < 0) __PYX_ERR(1, 55, __pyx_L38_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + } + __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; + __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; + __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; + goto __pyx_L43_try_end; + __pyx_L38_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; + __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + + /* "talib/_abstract.pxi":56 + * __POLARS_DATAFRAME = polars.DataFrame + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: # <<<<<<<<<<<<<< + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); + if (__pyx_t_22) { + __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); + if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) + __Pyx_XGOTREF(__pyx_t_18); + __Pyx_XGOTREF(__pyx_t_6); + __Pyx_XGOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_6) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) + + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + { + __Pyx_PyThreadState_declare + __Pyx_PyThreadState_assign + __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); + __Pyx_XGOTREF(__pyx_t_28); + __Pyx_XGOTREF(__pyx_t_27); + __Pyx_XGOTREF(__pyx_t_26); + /*try:*/ { + + /* "talib/_abstract.pxi":58 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_31 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_30 = (!__pyx_t_31); + if (!__pyx_t_30) { + } else { + __pyx_t_29 = __pyx_t_30; + goto __pyx_L55_bool_binop_done; + } + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_30 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_polars, Py_NE)); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(1, 58, __pyx_L46_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_29 = __pyx_t_30; + __pyx_L55_bool_binop_done:; + if (unlikely(__pyx_t_29)) { + + /* "talib/_abstract.pxi":60 + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + * raise import_error # <<<<<<<<<<<<<< + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: + */ + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 60, __pyx_L46_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_Raise(__pyx_t_14, 0, 0, 0); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __PYX_ERR(1, 60, __pyx_L46_error) + + /* "talib/_abstract.pxi":58 + * except ImportError as import_error: + * try: + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< + * # Propagate the error when the module exists but failed to be imported. + * raise import_error + */ + } + + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + } + __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; + __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; + __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; + goto __pyx_L53_try_end; + __pyx_L46_error:; + __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; + __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; + __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; + __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; + + /* "talib/_abstract.pxi":62 + * raise import_error + * # `ModuleNotFoundError` was introduced in Python 3.6. + * except NameError: # <<<<<<<<<<<<<< + * pass + * + */ + __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); + if (__pyx_t_22) { + __Pyx_ErrRestore(0,0,0); + goto __pyx_L47_exception_handled; + } + goto __pyx_L48_except_error; + + /* "talib/_abstract.pxi":57 + * __POLARS_SERIES = polars.Series + * except ImportError as import_error: + * try: # <<<<<<<<<<<<<< + * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + * # Propagate the error when the module exists but failed to be imported. + */ + __pyx_L48_except_error:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); + goto __pyx_L40_except_error; + __pyx_L47_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_28); + __Pyx_XGIVEREF(__pyx_t_27); + __Pyx_XGIVEREF(__pyx_t_26); + __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); + __pyx_L53_try_end:; + } + + /* "talib/_abstract.pxi":65 + * pass + * + * __POLARS_DATAFRAME = None # <<<<<<<<<<<<<< + * __POLARS_SERIES = None + * + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 65, __pyx_L40_except_error) + + /* "talib/_abstract.pxi":66 + * + * __POLARS_DATAFRAME = None + * __POLARS_SERIES = None # <<<<<<<<<<<<<< + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) + */ + if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, Py_None) < 0) __PYX_ERR(1, 66, __pyx_L40_except_error) + __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; + goto __pyx_L39_exception_handled; + } + goto __pyx_L40_except_error; + + /* "talib/_abstract.pxi":50 + * + * # allow use of polars.DataFrame for input arrays + * try: # <<<<<<<<<<<<<< + * import polars + * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + */ + __pyx_L40_except_error:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + goto __pyx_L1_error; + __pyx_L39_exception_handled:; + __Pyx_XGIVEREF(__pyx_t_1); + __Pyx_XGIVEREF(__pyx_t_23); + __Pyx_XGIVEREF(__pyx_t_24); + __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); + __pyx_L43_try_end:; + } + + /* "talib/_abstract.pxi":68 + * __POLARS_SERIES = None + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) # <<<<<<<<<<<<<< + * __ARRAY_TYPES = tuple(__ARRAY_TYPES) + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_6) < 0) __PYX_ERR(1, 68, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_abstract.pxi":69 + * + * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) + * __ARRAY_TYPES = tuple(__ARRAY_TYPES) # <<<<<<<<<<<<<< + * + * + */ + __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 69, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":72 + * + * + * if sys.version >= '3': # <<<<<<<<<<<<<< + * + * def str2bytes(s): + */ + __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_kp_s_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_29 < 0))) __PYX_ERR(1, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (__pyx_t_29) { + + /* "talib/_abstract.pxi":74 + * if sys.version >= '3': + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return bytes(s, 'ascii') + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 74, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":77 + * return bytes(s, 'ascii') + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b.decode('ascii') + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 77, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":72 + * + * + * if sys.version >= '3': # <<<<<<<<<<<<<< + * + * def str2bytes(s): + */ + goto __pyx_L57; + } + + /* "talib/_abstract.pxi":82 + * else: + * + * def str2bytes(s): # <<<<<<<<<<<<<< + * return s + * + */ + /*else*/ { + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 82, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":85 + * return s + * + * def bytes2str(b): # <<<<<<<<<<<<<< + * return b + * + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 85, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + } + __pyx_L57:; + + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__248); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_Function, __pyx_n_s_Function, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, __pyx_kp_s_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (__pyx_t_2 != __pyx_tuple__248) { + if (unlikely((PyDict_SetItemString(__pyx_t_18, "__orig_bases__", __pyx_tuple__248) < 0))) __PYX_ERR(1, 88, __pyx_L1_error) + } + + /* "talib/_abstract.pxi":117 + * """ + * + * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< + * # make sure the function_name is valid and define all of our variables + * self.__name = function_name.upper() + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_n_s_Function___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_init, __pyx_t_14) < 0) __PYX_ERR(1, 117, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":130 + * self.func_object = func_object + * + * @property # <<<<<<<<<<<<<< + * def __local(self): + * local = self.__localdata + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_n_s_Function___local, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__local, __pyx_t_3) < 0) __PYX_ERR(1, 130, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":172 + * return local + * + * @property # <<<<<<<<<<<<<< + * def info(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_n_s_Function_info, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_info, __pyx_t_14) < 0) __PYX_ERR(1, 172, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":179 + * return self.__local.info.copy() + * + * @property # <<<<<<<<<<<<<< + * def function_flags(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_n_s_Function_function_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_function_flags, __pyx_t_3) < 0) __PYX_ERR(1, 179, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":186 + * return self.__local.info['function_flags'] + * + * @property # <<<<<<<<<<<<<< + * def output_flags(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_n_s_Function_output_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_flags, __pyx_t_14) < 0) __PYX_ERR(1, 186, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":193 + * return self.__local.info['output_flags'].copy() + * + * def get_input_names(self): # <<<<<<<<<<<<<< + * """ + * Returns the dict of input price series names that specifies which + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_n_s_Function_get_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":204 + * return ret + * + * def set_input_names(self, input_names): # <<<<<<<<<<<<<< + * """ + * Sets the input price series names to use. + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_n_s_Function_set_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 204, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":214 + * local.outputs_valid = False + * + * input_names = property(get_input_names, set_input_names) # <<<<<<<<<<<<<< + * + * def get_input_arrays(self): + */ + __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_names); + if (unlikely(!__pyx_t_14)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_input_names); + } + if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_names); + if (unlikely(!__pyx_t_3)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_set_input_names); + } + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error); + __pyx_t_14 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_names, __pyx_t_3) < 0) __PYX_ERR(1, 214, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":216 + * input_names = property(get_input_names, set_input_names) + * + * def get_input_arrays(self): # <<<<<<<<<<<<<< + * """ + * Returns a copy of the dict of input arrays in use. + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_n_s_Function_get_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 216, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":227 + * return local.input_arrays.copy() + * + * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< + * """ + * Sets the dict of input_arrays to use. Returns True/False for + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_n_s_Function_set_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 227, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":274 + * return False + * + * input_arrays = property(get_input_arrays, set_input_arrays) # <<<<<<<<<<<<<< + * + * def get_parameters(self): + */ + __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_arrays); + if (unlikely(!__pyx_t_3)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_input_arrays); + } + if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_arrays); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_input_arrays); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_arrays, __pyx_t_7) < 0) __PYX_ERR(1, 274, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_abstract.pxi":276 + * input_arrays = property(get_input_arrays, set_input_arrays) + * + * def get_parameters(self): # <<<<<<<<<<<<<< + * """ + * Returns the function's optional parameters and their default values. + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_n_s_Function_get_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_abstract.pxi":286 + * return ret + * + * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< + * """ + * Sets the function parameter values. + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_n_s_Function_set_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__268); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 286, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_abstract.pxi":299 + * local.info['parameters'] = self.parameters + * + * parameters = property(get_parameters, set_parameters) # <<<<<<<<<<<<<< + * + * def set_function_args(self, *args, **kwargs): + */ + __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_parameters); + if (unlikely(!__pyx_t_7)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_parameters); + } + if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_parameters); + if (unlikely(!__pyx_t_14)) { + PyErr_Clear(); + __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_set_parameters); + } + if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_parameters, __pyx_t_14) < 0) __PYX_ERR(1, 299, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":301 + * parameters = property(get_parameters, set_parameters) + * + * def set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_n_s_Function_set_function_args, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_function_args, __pyx_t_14) < 0) __PYX_ERR(1, 301, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":336 + * local.outputs_valid = False + * + * @property # <<<<<<<<<<<<<< + * def lookback(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_n_s_Function_lookback, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_lookback, __pyx_t_3) < 0) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":357 + * return lookback + * + * @property # <<<<<<<<<<<<<< + * def output_names(self): + * """ + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_n_s_Function_output_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_names, __pyx_t_14) < 0) __PYX_ERR(1, 357, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + + /* "talib/_abstract.pxi":367 + * return ret + * + * @property # <<<<<<<<<<<<<< + * def outputs(self): + * """ + */ + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_n_s_Function_outputs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_outputs, __pyx_t_3) < 0) __PYX_ERR(1, 367, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":399 + * return ret[0] if len(ret) == 1 else ret + * + * def run(self, input_arrays=None): # <<<<<<<<<<<<<< + * """ + * run([input_arrays=None]) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_n_s_Function_run, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__268); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_run, __pyx_t_3) < 0) __PYX_ERR(1, 399, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":411 + * return self.outputs + * + * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< + * """ + * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_n_s_Function___call, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_call, __pyx_t_3) < 0) __PYX_ERR(1, 411, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":477 + * + * # figure out which price series names we're using for inputs + * def __input_price_series_names(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = [] + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_n_s_Function___input_price_series_na, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__input_price_series_na, __pyx_t_3) < 0) __PYX_ERR(1, 477, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":489 + * return input_price_series_names + * + * def __call_function(self): # <<<<<<<<<<<<<< + * local = self.__local + * input_price_series_names = self.__input_price_series_names() + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_n_s_Function___call_function, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__call_function, __pyx_t_3) < 0) __PYX_ERR(1, 489, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":520 + * local.outputs_valid = True + * + * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< + * type_ = self.__local.opt_inputs[input_name]['type'] + * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_n_s_Function___check_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__check_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 520, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":535 + * return False + * + * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< + * """ + * Returns the user-set value if there is one, otherwise the default. + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_n_s_Function___get_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__get_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":545 + * return value + * + * def __repr__(self): # <<<<<<<<<<<<<< + * return '%s' % self.info + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_n_s_Function___repr, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 545, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(1, 545, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":548 + * return '%s' % self.info + * + * def __unicode__(self): # <<<<<<<<<<<<<< + * return unicode(self.__str__()) + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_n_s_Function___unicode, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 548, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_unicode, __pyx_t_3) < 0) __PYX_ERR(1, 548, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":551 + * return unicode(self.__str__()) + * + * def __str__(self): # <<<<<<<<<<<<<< + * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + * + */ + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_n_s_Function___str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 551, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_str, __pyx_t_3) < 0) __PYX_ERR(1, 551, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + + /* "talib/_abstract.pxi":88 + * return b + * + * class Function(object): # <<<<<<<<<<<<<< + * """ + * This is a pythonic wrapper around TALIB's abstract interface. It is + */ + __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_Function, __pyx_t_2, __pyx_t_18, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_Function, __pyx_t_3) < 0) __PYX_ERR(1, 88, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":565 + * # therefore recommended over using these functions directly. + * + * def _ta_getGroupTable(): # <<<<<<<<<<<<<< + * """ + * Returns the list of available TALIB function group names. *slow* + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable, 0, __pyx_n_s_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getGroupTable, __pyx_t_2) < 0) __PYX_ERR(1, 565, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":577 + * return groups + * + * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< + * """ + * Returns a list of the functions for the specified group name. *slow* + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable, 0, __pyx_n_s_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncTable, __pyx_t_2) < 0) __PYX_ERR(1, 577, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":589 + * return functions + * + * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< + * """ + * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347__get_flags, 0, __pyx_n_s_get_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_flags, __pyx_t_2) < 0) __PYX_ERR(1, 589, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":615 + * + * TA_FUNC_FLAGS = { + * 16777216: 'Output scale same as input', # <<<<<<<<<<<<<< + * 67108864: 'Output is over volume', + * 134217728: 'Function has an unstable period', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 615, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16777216, __pyx_kp_s_Output_scale_same_as_input) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_67108864, __pyx_kp_s_Output_is_over_volume) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_134217728, __pyx_kp_s_Function_has_an_unstable_period) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_268435456, __pyx_kp_s_Output_is_a_candlestick) < 0) __PYX_ERR(1, 615, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNC_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 614, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":623 + * # when flag is 0, the function (should) work on any reasonable input ndarray + * TA_INPUT_FLAGS = { + * 1: 'open', # <<<<<<<<<<<<<< + * 2: 'high', + * 4: 'low', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_open) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_n_s_high) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_n_s_low) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_close) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_volume) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_n_s_openInterest) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_n_s_timeStamp) < 0) __PYX_ERR(1, 623, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_INPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 622, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":633 + * + * TA_OUTPUT_FLAGS = { + * 1: 'Line', # <<<<<<<<<<<<<< + * 2: 'Dotted Line', + * 4: 'Dashed Line', + */ + __pyx_t_2 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 633, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_kp_s_Dotted_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_kp_s_Dashed_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_Dot) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_Histogram) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_kp_s_Pattern_Bool) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_128, __pyx_kp_s_Strength_Pattern_200_100_Bearish) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_256, __pyx_kp_s_Output_can_be_positive) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_512, __pyx_kp_s_Output_can_be_negative) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_1024, __pyx_kp_s_Output_can_be_zero) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_2048, __pyx_kp_s_Values_represent_an_upper_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_t_2, __pyx_int_4096, __pyx_kp_s_Values_represent_a_lower_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_OUTPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 632, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":648 + * } + * + * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< + * """ + * Returns the info dict for the function. It has the following keys: name, + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo, 0, __pyx_n_s_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncInfo, __pyx_t_2) < 0) __PYX_ERR(1, 648, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":667 + * } + * + * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's input info dict for the given index. It has two + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo, 0, __pyx_n_s_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 667, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":688 + * } + * + * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's opt_input info dict for the given index. It has the + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, 0, __pyx_n_s_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOptInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 688, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":712 + * } + * + * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< + * """ + * Returns the function's output info dict for the given index. It has two + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo, 0, __pyx_n_s_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 712, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOutputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 712, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_abstract.pxi":732 + * } + * + * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< + * """ + * Returns a tuple with two outputs: defaults, a dict of parameter defaults, + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs, 0, __pyx_n_s_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_defaults_and_docs, __pyx_t_2) < 0) __PYX_ERR(1, 732, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":7 + * # NOTE: _ta_check_success, NaN are defined in common.pxi + * + * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + * + * @wraparound(False) # turn off relative indexing from end of lists + */ + __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(4, 7, __pyx_L1_error) + + /* "talib/_stream.pxi":9 + * np.import_array() # Initialize the NumPy C API + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ACOS( np.ndarray real not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_359stream_ACOS, 0, __pyx_n_s_stream_ACOS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__308)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 9, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ACOS, __pyx_t_2) < 0) __PYX_ERR(4, 9, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":36 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AD( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , np.ndarray volume not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_361stream_AD, 0, __pyx_n_s_stream_AD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__310)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 36, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AD, __pyx_t_2) < 0) __PYX_ERR(4, 36, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":72 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADD( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_363stream_ADD, 0, __pyx_n_s_stream_ADD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__312)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 72, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADD, __pyx_t_2) < 0) __PYX_ERR(4, 72, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":105 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADOSC( 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 ): # <<<<<<<<<<<<<< + * """ ADOSC(high, low, close, volume[, fastperiod=?, slowperiod=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 105, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":103 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADOSC( 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 ): + */ + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_2)) __PYX_ERR(4, 103, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_6)) __PYX_ERR(4, 103, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_365stream_ADOSC, 0, __pyx_n_s_stream_ADOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__314)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 103, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADOSC, __pyx_t_6) < 0) __PYX_ERR(4, 103, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":144 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 144, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":142 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 142, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_367stream_ADX, 0, __pyx_n_s_stream_ADX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__316)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADX, __pyx_t_6) < 0) __PYX_ERR(4, 142, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":179 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ADXR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 179, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":177 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ADXR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_18 = PyTuple_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 177, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_369stream_ADXR, 0, __pyx_n_s_stream_ADXR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__317)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 177, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ADXR, __pyx_t_6) < 0) __PYX_ERR(4, 177, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":214 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ APO(real[, fastperiod=?, slowperiod=?, matype=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 214, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_stream.pxi":212 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_APO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): + */ + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6)) __PYX_ERR(4, 212, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_18)) __PYX_ERR(4, 212, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2)) __PYX_ERR(4, 212, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_18 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_371stream_APO, 0, __pyx_n_s_stream_APO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__319)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 212, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_APO, __pyx_t_2) < 0) __PYX_ERR(4, 212, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":245 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROON(high, low[, timeperiod=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 245, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_stream.pxi":243 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROON( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 243, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_373stream_AROON, 0, __pyx_n_s_stream_AROON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__321)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 243, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROON, __pyx_t_2) < 0) __PYX_ERR(4, 243, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":280 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ AROONOSC(high, low[, timeperiod=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 280, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_stream.pxi":278 + * return outaroondown , outaroonup + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AROONOSC( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 278, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_375stream_AROONOSC, 0, __pyx_n_s_stream_AROONOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__323)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AROONOSC, __pyx_t_2) < 0) __PYX_ERR(4, 278, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":310 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ASIN( np.ndarray real not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_377stream_ASIN, 0, __pyx_n_s_stream_ASIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__324)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 310, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ASIN, __pyx_t_2) < 0) __PYX_ERR(4, 310, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":337 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ATAN( np.ndarray real not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_379stream_ATAN, 0, __pyx_n_s_stream_ATAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__325)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 337, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATAN, __pyx_t_2) < 0) __PYX_ERR(4, 337, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":366 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ATR(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 366, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + + /* "talib/_stream.pxi":364 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2)) __PYX_ERR(4, 364, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_381stream_ATR, 0, __pyx_n_s_stream_ATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__326)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 364, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ATR, __pyx_t_2) < 0) __PYX_ERR(4, 364, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":399 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_AVGPRICE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_383stream_AVGPRICE, 0, __pyx_n_s_stream_AVGPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__328)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 399, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_AVGPRICE, __pyx_t_2) < 0) __PYX_ERR(4, 399, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + + /* "talib/_stream.pxi":437 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): # <<<<<<<<<<<<<< + * """ BBANDS(real[, timeperiod=?, nbdevup=?, nbdevdn=?, matype=?]) + * + */ + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 437, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":435 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BBANDS( np.ndarray real not None , int timeperiod=-2**31 , double nbdevup=-4e37 , double nbdevdn=-4e37 , int matype=0 ): + */ + __pyx_t_14 = PyTuple_New(4); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2)) __PYX_ERR(4, 435, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_3)) __PYX_ERR(4, 435, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_18)) __PYX_ERR(4, 435, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 3, __pyx_t_6)) __PYX_ERR(4, 435, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_3 = 0; + __pyx_t_18 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_385stream_BBANDS, 0, __pyx_n_s_stream_BBANDS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__330)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 435, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BBANDS, __pyx_t_6) < 0) __PYX_ERR(4, 435, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":475 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ BETA(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":473 + * return outrealupperband , outrealmiddleband , outreallowerband + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BETA( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 473, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_387stream_BETA, 0, __pyx_n_s_stream_BETA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__332)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BETA, __pyx_t_6) < 0) __PYX_ERR(4, 473, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":506 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_BOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_389stream_BOP, 0, __pyx_n_s_stream_BOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__333)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 506, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_BOP, __pyx_t_6) < 0) __PYX_ERR(4, 506, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":544 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CCI(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":542 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CCI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 542, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_391stream_CCI, 0, __pyx_n_s_stream_CCI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__334)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CCI, __pyx_t_6) < 0) __PYX_ERR(4, 542, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":577 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_393stream_CDL2CROWS, 0, __pyx_n_s_stream_CDL2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__336)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 577, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL2CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 577, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":613 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3BLACKCROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_395stream_CDL3BLACKCROWS, 0, __pyx_n_s_stream_CDL3BLACKCROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__337)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 613, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3BLACKCROWS, __pyx_t_6) < 0) __PYX_ERR(4, 613, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":649 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3INSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_397stream_CDL3INSIDE, 0, __pyx_n_s_stream_CDL3INSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__338)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 649, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3INSIDE, __pyx_t_6) < 0) __PYX_ERR(4, 649, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":685 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3LINESTRIKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_399stream_CDL3LINESTRIKE, 0, __pyx_n_s_stream_CDL3LINESTRIKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__339)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3LINESTRIKE, __pyx_t_6) < 0) __PYX_ERR(4, 685, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":721 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3OUTSIDE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_401stream_CDL3OUTSIDE, 0, __pyx_n_s_stream_CDL3OUTSIDE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__340)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 721, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3OUTSIDE, __pyx_t_6) < 0) __PYX_ERR(4, 721, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":757 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3STARSINSOUTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_403stream_CDL3STARSINSOUTH, 0, __pyx_n_s_stream_CDL3STARSINSOUTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__341)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 757, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3STARSINSOUTH, __pyx_t_6) < 0) __PYX_ERR(4, 757, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":793 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDL3WHITESOLDIERS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_405stream_CDL3WHITESOLDIERS, 0, __pyx_n_s_stream_CDL3WHITESOLDIERS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__342)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 793, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDL3WHITESOLDIERS, __pyx_t_6) < 0) __PYX_ERR(4, 793, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":831 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLABANDONEDBABY(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 831, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":829 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLABANDONEDBABY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 829, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_407stream_CDLABANDONEDBABY, 0, __pyx_n_s_stream_CDLABANDONEDBABY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__344)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 829, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLABANDONEDBABY, __pyx_t_6) < 0) __PYX_ERR(4, 829, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":867 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLADVANCEBLOCK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_409stream_CDLADVANCEBLOCK, 0, __pyx_n_s_stream_CDLADVANCEBLOCK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__345)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 867, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLADVANCEBLOCK, __pyx_t_6) < 0) __PYX_ERR(4, 867, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":903 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLBELTHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_411stream_CDLBELTHOLD, 0, __pyx_n_s_stream_CDLBELTHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__346)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBELTHOLD, __pyx_t_6) < 0) __PYX_ERR(4, 903, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":939 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLBREAKAWAY( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_413stream_CDLBREAKAWAY, 0, __pyx_n_s_stream_CDLBREAKAWAY, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__347)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 939, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLBREAKAWAY, __pyx_t_6) < 0) __PYX_ERR(4, 939, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":975 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCLOSINGMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_415stream_CDLCLOSINGMARUBOZU, 0, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__348)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 975, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCLOSINGMARUBOZU, __pyx_t_6) < 0) __PYX_ERR(4, 975, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1011 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCONCEALBABYSWALL( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_417stream_CDLCONCEALBABYSWALL, 0, __pyx_n_s_stream_CDLCONCEALBABYSWALL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__349)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1011, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCONCEALBABYSWALL, __pyx_t_6) < 0) __PYX_ERR(4, 1011, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1047 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLCOUNTERATTACK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_419stream_CDLCOUNTERATTACK, 0, __pyx_n_s_stream_CDLCOUNTERATTACK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__350)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1047, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLCOUNTERATTACK, __pyx_t_6) < 0) __PYX_ERR(4, 1047, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1085 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLDARKCLOUDCOVER(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_6 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":1083 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDARKCLOUDCOVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1083, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_421stream_CDLDARKCLOUDCOVER, 0, __pyx_n_s_stream_CDLDARKCLOUDCOVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__351)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1083, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDARKCLOUDCOVER, __pyx_t_6) < 0) __PYX_ERR(4, 1083, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1121 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_423stream_CDLDOJI, 0, __pyx_n_s_stream_CDLDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__352)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1157 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_425stream_CDLDOJISTAR, 0, __pyx_n_s_stream_CDLDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__353)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1157, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1157, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1193 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLDRAGONFLYDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_427stream_CDLDRAGONFLYDOJI, 0, __pyx_n_s_stream_CDLDRAGONFLYDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__354)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1193, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLDRAGONFLYDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1193, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1229 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLENGULFING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_429stream_CDLENGULFING, 0, __pyx_n_s_stream_CDLENGULFING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__355)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1229, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLENGULFING, __pyx_t_6) < 0) __PYX_ERR(4, 1229, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1267 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGDOJISTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1267, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":1265 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1265, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_431stream_CDLEVENINGDOJISTAR, 0, __pyx_n_s_stream_CDLEVENINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__356)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1265, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1265, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1305 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLEVENINGSTAR(open, high, low, close[, penetration=?]) + * + */ + __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":1303 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLEVENINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 1303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 1303, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_433stream_CDLEVENINGSTAR, 0, __pyx_n_s_stream_CDLEVENINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__357)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1303, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLEVENINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 1303, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1341 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGAPSIDESIDEWHITE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_435stream_CDLGAPSIDESIDEWHITE, 0, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__358)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1341, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGAPSIDESIDEWHITE, __pyx_t_6) < 0) __PYX_ERR(4, 1341, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1377 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLGRAVESTONEDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_437stream_CDLGRAVESTONEDOJI, 0, __pyx_n_s_stream_CDLGRAVESTONEDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__359)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1377, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLGRAVESTONEDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1377, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1413 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_439stream_CDLHAMMER, 0, __pyx_n_s_stream_CDLHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__360)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1413, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHAMMER, __pyx_t_6) < 0) __PYX_ERR(4, 1413, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1449 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHANGINGMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_441stream_CDLHANGINGMAN, 0, __pyx_n_s_stream_CDLHANGINGMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__361)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1449, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHANGINGMAN, __pyx_t_6) < 0) __PYX_ERR(4, 1449, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1485 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_443stream_CDLHARAMI, 0, __pyx_n_s_stream_CDLHARAMI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__362)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1485, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMI, __pyx_t_6) < 0) __PYX_ERR(4, 1485, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1521 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHARAMICROSS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_445stream_CDLHARAMICROSS, 0, __pyx_n_s_stream_CDLHARAMICROSS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__363)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1521, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHARAMICROSS, __pyx_t_6) < 0) __PYX_ERR(4, 1521, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1557 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIGHWAVE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_447stream_CDLHIGHWAVE, 0, __pyx_n_s_stream_CDLHIGHWAVE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__364)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1557, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIGHWAVE, __pyx_t_6) < 0) __PYX_ERR(4, 1557, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1593 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_449stream_CDLHIKKAKE, 0, __pyx_n_s_stream_CDLHIKKAKE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__365)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1593, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKE, __pyx_t_6) < 0) __PYX_ERR(4, 1593, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1629 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHIKKAKEMOD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_451stream_CDLHIKKAKEMOD, 0, __pyx_n_s_stream_CDLHIKKAKEMOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__366)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1629, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHIKKAKEMOD, __pyx_t_6) < 0) __PYX_ERR(4, 1629, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1665 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLHOMINGPIGEON( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_453stream_CDLHOMINGPIGEON, 0, __pyx_n_s_stream_CDLHOMINGPIGEON, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__367)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1665, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLHOMINGPIGEON, __pyx_t_6) < 0) __PYX_ERR(4, 1665, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1701 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLIDENTICAL3CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_455stream_CDLIDENTICAL3CROWS, 0, __pyx_n_s_stream_CDLIDENTICAL3CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__368)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1701, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLIDENTICAL3CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 1701, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1737 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_457stream_CDLINNECK, 0, __pyx_n_s_stream_CDLINNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__369)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1737, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINNECK, __pyx_t_6) < 0) __PYX_ERR(4, 1737, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1773 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLINVERTEDHAMMER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_459stream_CDLINVERTEDHAMMER, 0, __pyx_n_s_stream_CDLINVERTEDHAMMER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__370)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLINVERTEDHAMMER, __pyx_t_6) < 0) __PYX_ERR(4, 1773, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1809 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_461stream_CDLKICKING, 0, __pyx_n_s_stream_CDLKICKING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__371)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1809, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKING, __pyx_t_6) < 0) __PYX_ERR(4, 1809, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1845 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLKICKINGBYLENGTH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_463stream_CDLKICKINGBYLENGTH, 0, __pyx_n_s_stream_CDLKICKINGBYLENGTH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__372)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLKICKINGBYLENGTH, __pyx_t_6) < 0) __PYX_ERR(4, 1845, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1881 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLADDERBOTTOM( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_465stream_CDLLADDERBOTTOM, 0, __pyx_n_s_stream_CDLLADDERBOTTOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__373)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1881, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLADDERBOTTOM, __pyx_t_6) < 0) __PYX_ERR(4, 1881, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1917 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLEGGEDDOJI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_467stream_CDLLONGLEGGEDDOJI, 0, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__374)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1917, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLEGGEDDOJI, __pyx_t_6) < 0) __PYX_ERR(4, 1917, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1953 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLLONGLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_469stream_CDLLONGLINE, 0, __pyx_n_s_stream_CDLLONGLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__375)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1953, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLLONGLINE, __pyx_t_6) < 0) __PYX_ERR(4, 1953, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":1989 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMARUBOZU( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_471stream_CDLMARUBOZU, 0, __pyx_n_s_stream_CDLMARUBOZU, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__376)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 1989, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMARUBOZU, __pyx_t_6) < 0) __PYX_ERR(4, 1989, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2025 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATCHINGLOW( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_473stream_CDLMATCHINGLOW, 0, __pyx_n_s_stream_CDLMATCHINGLOW, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__377)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATCHINGLOW, __pyx_t_6) < 0) __PYX_ERR(4, 2025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2063 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): # <<<<<<<<<<<<<< + * """ CDLMATHOLD(open, high, low, close[, penetration=?]) + * */ - __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_math, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 4, __pyx_L1_error) + __pyx_t_6 = PyFloat_FromDouble(((double)0.5)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2063, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_math, __pyx_t_6) < 0) __PYX_ERR(1, 4, __pyx_L1_error) + + /* "talib/_stream.pxi":2061 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMATHOLD( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.5 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2061, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_475stream_CDLMATHOLD, 0, __pyx_n_s_stream_CDLMATHOLD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__378)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMATHOLD, __pyx_t_6) < 0) __PYX_ERR(4, 2061, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":5 - * ''' - * import math - * import threading # <<<<<<<<<<<<<< - * try: - * from collections import OrderedDict + /* "talib/_stream.pxi":2101 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGDOJISTAR(open, high, low, close[, penetration=?]) + * */ - __pyx_t_6 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_threading, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 5, __pyx_L1_error) + __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2101, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_threading, __pyx_t_6) < 0) __PYX_ERR(1, 5, __pyx_L1_error) + + /* "talib/_stream.pxi":2099 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGDOJISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2099, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_477stream_CDLMORNINGDOJISTAR, 0, __pyx_n_s_stream_CDLMORNINGDOJISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__379)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2099, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGDOJISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2099, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":6 - * import math - * import threading - * try: # <<<<<<<<<<<<<< - * from collections import OrderedDict - * except ImportError: # handle python 2.6 and earlier + /* "talib/_stream.pxi":2139 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): # <<<<<<<<<<<<<< + * """ CDLMORNINGSTAR(open, high, low, close[, penetration=?]) + * */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_24); - /*try:*/ { + __pyx_t_6 = PyFloat_FromDouble(((double)0.3)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2139, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":7 - * import threading - * try: - * from collections import OrderedDict # <<<<<<<<<<<<<< - * except ImportError: # handle python 2.6 and earlier - * from ordereddict import OrderedDict + /* "talib/_stream.pxi":2137 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLMORNINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , double penetration=0.3 ): */ - __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_INCREF(__pyx_n_s_OrderedDict); - __Pyx_GIVEREF(__pyx_n_s_OrderedDict); - if (__Pyx_PyList_SET_ITEM(__pyx_t_6, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 7, __pyx_L11_error); - __pyx_t_18 = __Pyx_Import(__pyx_n_s_collections, __pyx_t_6, -1); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_6 = __Pyx_ImportFrom(__pyx_t_18, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_GOTREF(__pyx_t_6); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_6) < 0) __PYX_ERR(1, 7, __pyx_L11_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2137, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_479stream_CDLMORNINGSTAR, 0, __pyx_n_s_stream_CDLMORNINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__380)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2137, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLMORNINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2137, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":6 - * import math - * import threading - * try: # <<<<<<<<<<<<<< - * from collections import OrderedDict - * except ImportError: # handle python 2.6 and earlier + /* "talib/_stream.pxi":2175 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLONNECK( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - goto __pyx_L16_try_end; - __pyx_L11_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_481stream_CDLONNECK, 0, __pyx_n_s_stream_CDLONNECK, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__381)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2175, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLONNECK, __pyx_t_6) < 0) __PYX_ERR(4, 2175, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":8 - * try: - * from collections import OrderedDict - * except ImportError: # handle python 2.6 and earlier # <<<<<<<<<<<<<< - * from ordereddict import OrderedDict - * from cython.operator cimport dereference as deref + /* "talib/_stream.pxi":2211 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLPIERCING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 8, __pyx_L13_except_error) - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_2); + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_483stream_CDLPIERCING, 0, __pyx_n_s_stream_CDLPIERCING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__382)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2211, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLPIERCING, __pyx_t_6) < 0) __PYX_ERR(4, 2211, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":9 - * from collections import OrderedDict - * except ImportError: # handle python 2.6 and earlier - * from ordereddict import OrderedDict # <<<<<<<<<<<<<< - * from cython.operator cimport dereference as deref - * import numpy + /* "talib/_stream.pxi":2247 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRICKSHAWMAN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_INCREF(__pyx_n_s_OrderedDict); - __Pyx_GIVEREF(__pyx_n_s_OrderedDict); - if (__Pyx_PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_s_OrderedDict)) __PYX_ERR(1, 9, __pyx_L13_except_error); - __pyx_t_14 = __Pyx_Import(__pyx_n_s_ordereddict, __pyx_t_3, -1); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_ImportFrom(__pyx_t_14, __pyx_n_s_OrderedDict); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_OrderedDict, __pyx_t_3) < 0) __PYX_ERR(1, 9, __pyx_L13_except_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L12_exception_handled; - } - goto __pyx_L13_except_error; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_485stream_CDLRICKSHAWMAN, 0, __pyx_n_s_stream_CDLRICKSHAWMAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__383)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2247, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRICKSHAWMAN, __pyx_t_6) < 0) __PYX_ERR(4, 2247, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2283 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLRISEFALL3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_487stream_CDLRISEFALL3METHODS, 0, __pyx_n_s_stream_CDLRISEFALL3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__384)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2283, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLRISEFALL3METHODS, __pyx_t_6) < 0) __PYX_ERR(4, 2283, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2319 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSEPARATINGLINES( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_489stream_CDLSEPARATINGLINES, 0, __pyx_n_s_stream_CDLSEPARATINGLINES, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__385)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2319, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSEPARATINGLINES, __pyx_t_6) < 0) __PYX_ERR(4, 2319, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2355 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHOOTINGSTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_491stream_CDLSHOOTINGSTAR, 0, __pyx_n_s_stream_CDLSHOOTINGSTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__386)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2355, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHOOTINGSTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2355, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2391 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSHORTLINE( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_493stream_CDLSHORTLINE, 0, __pyx_n_s_stream_CDLSHORTLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__387)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2391, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSHORTLINE, __pyx_t_6) < 0) __PYX_ERR(4, 2391, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2427 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSPINNINGTOP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_495stream_CDLSPINNINGTOP, 0, __pyx_n_s_stream_CDLSPINNINGTOP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__388)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2427, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSPINNINGTOP, __pyx_t_6) < 0) __PYX_ERR(4, 2427, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2463 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTALLEDPATTERN( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_497stream_CDLSTALLEDPATTERN, 0, __pyx_n_s_stream_CDLSTALLEDPATTERN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__389)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTALLEDPATTERN, __pyx_t_6) < 0) __PYX_ERR(4, 2463, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2499 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLSTICKSANDWICH( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_499stream_CDLSTICKSANDWICH, 0, __pyx_n_s_stream_CDLSTICKSANDWICH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__390)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2499, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLSTICKSANDWICH, __pyx_t_6) < 0) __PYX_ERR(4, 2499, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2535 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTAKURI( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_501stream_CDLTAKURI, 0, __pyx_n_s_stream_CDLTAKURI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__391)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2535, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTAKURI, __pyx_t_6) < 0) __PYX_ERR(4, 2535, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2571 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTASUKIGAP( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_503stream_CDLTASUKIGAP, 0, __pyx_n_s_stream_CDLTASUKIGAP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__392)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2571, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTASUKIGAP, __pyx_t_6) < 0) __PYX_ERR(4, 2571, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2607 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTHRUSTING( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_505stream_CDLTHRUSTING, 0, __pyx_n_s_stream_CDLTHRUSTING, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__393)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2607, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTHRUSTING, __pyx_t_6) < 0) __PYX_ERR(4, 2607, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2643 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLTRISTAR( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_507stream_CDLTRISTAR, 0, __pyx_n_s_stream_CDLTRISTAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__394)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2643, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLTRISTAR, __pyx_t_6) < 0) __PYX_ERR(4, 2643, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2679 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUNIQUE3RIVER( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_509stream_CDLUNIQUE3RIVER, 0, __pyx_n_s_stream_CDLUNIQUE3RIVER, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__395)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2679, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUNIQUE3RIVER, __pyx_t_6) < 0) __PYX_ERR(4, 2679, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2715 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLUPSIDEGAP2CROWS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_511stream_CDLUPSIDEGAP2CROWS, 0, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__396)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2715, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLUPSIDEGAP2CROWS, __pyx_t_6) < 0) __PYX_ERR(4, 2715, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2751 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CDLXSIDEGAP3METHODS( np.ndarray open not None , np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_513stream_CDLXSIDEGAP3METHODS, 0, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__397)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2751, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CDLXSIDEGAP3METHODS, __pyx_t_6) < 0) __PYX_ERR(4, 2751, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2787 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CEIL( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_515stream_CEIL, 0, __pyx_n_s_stream_CEIL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__398)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2787, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CEIL, __pyx_t_6) < 0) __PYX_ERR(4, 2787, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2816 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CMO(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2816, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":2814 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CMO( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2814, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_517stream_CMO, 0, __pyx_n_s_stream_CMO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__400)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2814, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CMO, __pyx_t_6) < 0) __PYX_ERR(4, 2814, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2845 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ CORREL(real0, real1[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2845, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":2843 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_CORREL( np.ndarray real0 not None , np.ndarray real1 not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2843, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_519stream_CORREL, 0, __pyx_n_s_stream_CORREL, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__401)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2843, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_CORREL, __pyx_t_6) < 0) __PYX_ERR(4, 2843, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2876 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COS( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_521stream_COS, 0, __pyx_n_s_stream_COS, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__402)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COS, __pyx_t_6) < 0) __PYX_ERR(4, 2876, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2903 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_COSH( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_523stream_COSH, 0, __pyx_n_s_stream_COSH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__403)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_COSH, __pyx_t_6) < 0) __PYX_ERR(4, 2903, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2932 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DEMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":2930 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2930, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_525stream_DEMA, 0, __pyx_n_s_stream_DEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__404)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DEMA, __pyx_t_6) < 0) __PYX_ERR(4, 2930, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2959 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DIV( np.ndarray real0 not None , np.ndarray real1 not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_527stream_DIV, 0, __pyx_n_s_stream_DIV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__405)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2959, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DIV, __pyx_t_6) < 0) __PYX_ERR(4, 2959, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":2992 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ DX(high, low, close[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2992, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":2990 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_DX( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 2990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 2990, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_529stream_DX, 0, __pyx_n_s_stream_DX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__406)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 2990, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_DX, __pyx_t_6) < 0) __PYX_ERR(4, 2990, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3027 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ EMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3027, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":3025 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3025, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_531stream_EMA, 0, __pyx_n_s_stream_EMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__407)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EMA, __pyx_t_6) < 0) __PYX_ERR(4, 3025, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3054 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_EXP( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_533stream_EXP, 0, __pyx_n_s_stream_EXP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__408)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3054, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_EXP, __pyx_t_6) < 0) __PYX_ERR(4, 3054, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3081 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_FLOOR( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_535stream_FLOOR, 0, __pyx_n_s_stream_FLOOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__409)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3081, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_FLOOR, __pyx_t_6) < 0) __PYX_ERR(4, 3081, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3108 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPERIOD( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_537stream_HT_DCPERIOD, 0, __pyx_n_s_stream_HT_DCPERIOD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__410)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3108, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPERIOD, __pyx_t_6) < 0) __PYX_ERR(4, 3108, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3135 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_DCPHASE( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_539stream_HT_DCPHASE, 0, __pyx_n_s_stream_HT_DCPHASE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__411)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3135, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_DCPHASE, __pyx_t_6) < 0) __PYX_ERR(4, 3135, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3162 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_PHASOR( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_541stream_HT_PHASOR, 0, __pyx_n_s_stream_HT_PHASOR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__413)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3162, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_PHASOR, __pyx_t_6) < 0) __PYX_ERR(4, 3162, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3192 + * return outinphase , outquadrature + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_SINE( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_543stream_HT_SINE, 0, __pyx_n_s_stream_HT_SINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__415)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3192, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_SINE, __pyx_t_6) < 0) __PYX_ERR(4, 3192, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3222 + * return outsine , outleadsine + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDLINE( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_545stream_HT_TRENDLINE, 0, __pyx_n_s_stream_HT_TRENDLINE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__416)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDLINE, __pyx_t_6) < 0) __PYX_ERR(4, 3222, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3249 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_HT_TRENDMODE( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_547stream_HT_TRENDMODE, 0, __pyx_n_s_stream_HT_TRENDMODE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__418)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3249, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_HT_TRENDMODE, __pyx_t_6) < 0) __PYX_ERR(4, 3249, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3278 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ KAMA(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3278, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":3276 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_KAMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3276, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_549stream_KAMA, 0, __pyx_n_s_stream_KAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__419)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3276, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_KAMA, __pyx_t_6) < 0) __PYX_ERR(4, 3276, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3307 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG(real[, timeperiod=?]) + * + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3307, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":6 - * import math - * import threading - * try: # <<<<<<<<<<<<<< - * from collections import OrderedDict - * except ImportError: # handle python 2.6 and earlier + /* "talib/_stream.pxi":3305 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_L13_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - goto __pyx_L1_error; - __pyx_L12_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - __pyx_L16_try_end:; - } + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3305, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_551stream_LINEARREG, 0, __pyx_n_s_stream_LINEARREG, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__420)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3305, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG, __pyx_t_6) < 0) __PYX_ERR(4, 3305, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":11 - * from ordereddict import OrderedDict - * from cython.operator cimport dereference as deref - * import numpy # <<<<<<<<<<<<<< - * import sys + /* "talib/_stream.pxi":3336 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_ANGLE(real[, timeperiod=?]) * */ - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_numpy, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 11, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_numpy, __pyx_t_2) < 0) __PYX_ERR(1, 11, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3336, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":12 - * from cython.operator cimport dereference as deref - * import numpy - * import sys # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":3334 + * return outreal * - * cimport numpy as np + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_ANGLE( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_sys, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_2) < 0) __PYX_ERR(1, 12, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3334, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_553stream_LINEARREG_ANGLE, 0, __pyx_n_s_stream_LINEARREG_ANGLE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__421)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3334, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_ANGLE, __pyx_t_6) < 0) __PYX_ERR(4, 3334, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":18 - * # NOTE: _ta_check_success, MA_Type is defined in _common.pxi + /* "talib/_stream.pxi":3365 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_INTERCEPT(real[, timeperiod=?]) * - * np.import_array() # Initialize the NumPy C API # <<<<<<<<<<<<<< + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3365, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":3363 + * return outreal * - * # lookup for TALIB input parameters which don't define expected price series inputs + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_INTERCEPT( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_22 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_22 == ((int)-1))) __PYX_ERR(1, 18, __pyx_L1_error) + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3363, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_555stream_LINEARREG_INTERCEPT, 0, __pyx_n_s_stream_LINEARREG_INTERCEPT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__422)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3363, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_INTERCEPT, __pyx_t_6) < 0) __PYX_ERR(4, 3363, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":21 + /* "talib/_stream.pxi":3394 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ LINEARREG_SLOPE(real[, timeperiod=?]) * - * # lookup for TALIB input parameters which don't define expected price series inputs - * __INPUT_PRICE_SERIES_DEFAULTS = {'price': 'close', # <<<<<<<<<<<<<< - * 'price0': 'high', - * 'price1': 'low', */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 21, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price, __pyx_n_s_close) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price0, __pyx_n_s_high) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_price1, __pyx_n_s_low) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_periods, __pyx_n_s_periods) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_PRICE_SERIES_DEFAULTS, __pyx_t_2) < 0) __PYX_ERR(1, 21, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3394, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":27 - * } + /* "talib/_stream.pxi":3392 + * return outreal * - * __INPUT_ARRAYS_TYPES = [dict] # <<<<<<<<<<<<<< - * __ARRAY_TYPES = [np.ndarray] + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LINEARREG_SLOPE( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_6)) __PYX_ERR(4, 3392, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_557stream_LINEARREG_SLOPE, 0, __pyx_n_s_stream_LINEARREG_SLOPE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__423)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3392, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LINEARREG_SLOPE, __pyx_t_6) < 0) __PYX_ERR(4, 3392, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3421 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LN( np.ndarray real not None ): */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 27, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)(&PyDict_Type)); - __Pyx_GIVEREF((PyObject *)(&PyDict_Type)); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)(&PyDict_Type)))) __PYX_ERR(1, 27, __pyx_L1_error); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 27, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_559stream_LN, 0, __pyx_n_s_stream_LN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__424)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3421, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LN, __pyx_t_6) < 0) __PYX_ERR(4, 3421, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":28 + /* "talib/_stream.pxi":3448 + * return outreal * - * __INPUT_ARRAYS_TYPES = [dict] - * __ARRAY_TYPES = [np.ndarray] # <<<<<<<<<<<<<< + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_LOG10( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_561stream_LOG10, 0, __pyx_n_s_stream_LOG10, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__425)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3448, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_LOG10, __pyx_t_6) < 0) __PYX_ERR(4, 3448, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":3477 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MA(real[, timeperiod=?, matype=?]) * - * # allow use of pandas.DataFrame for input arrays */ - __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 28, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_INCREF((PyObject *)__pyx_ptype_5numpy_ndarray); - __Pyx_GIVEREF((PyObject *)__pyx_ptype_5numpy_ndarray); - if (__Pyx_PyList_SET_ITEM(__pyx_t_2, 0, ((PyObject *)__pyx_ptype_5numpy_ndarray))) __PYX_ERR(1, 28, __pyx_L1_error); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 28, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3477, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); - /* "talib/_abstract.pxi":31 + /* "talib/_stream.pxi":3475 + * return outreal * - * # allow use of pandas.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import pandas - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MA( np.ndarray real not None , int timeperiod=-2**31 , int matype=0 ): */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_24, &__pyx_t_23, &__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_1); - /*try:*/ { + __pyx_t_18 = PyTuple_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6)) __PYX_ERR(4, 3475, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_14)) __PYX_ERR(4, 3475, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_14 = 0; + __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_563stream_MA, 0, __pyx_n_s_stream_MA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__427)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3475, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_14, __pyx_t_18); + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MA, __pyx_t_14) < 0) __PYX_ERR(4, 3475, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - /* "talib/_abstract.pxi":32 - * # allow use of pandas.DataFrame for input arrays - * try: - * import pandas # <<<<<<<<<<<<<< - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) - * __ARRAY_TYPES.append(pandas.Series) + /* "talib/_stream.pxi":3507 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACD(real[, fastperiod=?, slowperiod=?, signalperiod=?]) + * */ - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_pandas, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 32, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_pandas, __pyx_t_2) < 0) __PYX_ERR(1, 32, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3507, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":33 - * try: - * import pandas - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) # <<<<<<<<<<<<<< - * __ARRAY_TYPES.append(pandas.Series) - * __PANDAS_DATAFRAME = pandas.DataFrame + /* "talib/_stream.pxi":3505 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACD( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int signalperiod=-2**31 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 33, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14)) __PYX_ERR(4, 3505, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_18)) __PYX_ERR(4, 3505, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6)) __PYX_ERR(4, 3505, __pyx_L1_error); + __pyx_t_14 = 0; + __pyx_t_18 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_565stream_MACD, 0, __pyx_n_s_stream_MACD, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__429)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3505, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_3); + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACD, __pyx_t_6) < 0) __PYX_ERR(4, 3505, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":34 - * import pandas - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) - * __ARRAY_TYPES.append(pandas.Series) # <<<<<<<<<<<<<< - * __PANDAS_DATAFRAME = pandas.DataFrame - * __PANDAS_SERIES = pandas.Series + /* "talib/_stream.pxi":3544 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): # <<<<<<<<<<<<<< + * """ MACDEXT(real[, fastperiod=?, fastmatype=?, slowperiod=?, slowmatype=?, signalperiod=?, signalmatype=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pandas); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_18, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 34, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3544, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":35 - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) - * __ARRAY_TYPES.append(pandas.Series) - * __PANDAS_DATAFRAME = pandas.DataFrame # <<<<<<<<<<<<<< - * __PANDAS_SERIES = pandas.Series - * except ImportError as import_error: + /* "talib/_stream.pxi":3542 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDEXT( np.ndarray real not None , int fastperiod=-2**31 , int fastmatype=0 , int slowperiod=-2**31 , int slowmatype=0 , int signalperiod=-2**31 , int signalmatype=0 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pandas); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, __pyx_t_18) < 0) __PYX_ERR(1, 35, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_4 = PyTuple_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6)) __PYX_ERR(4, 3542, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3)) __PYX_ERR(4, 3542, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_18)) __PYX_ERR(4, 3542, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_14)) __PYX_ERR(4, 3542, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_2)) __PYX_ERR(4, 3542, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 5, __pyx_t_7)) __PYX_ERR(4, 3542, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_3 = 0; + __pyx_t_18 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_567stream_MACDEXT, 0, __pyx_n_s_stream_MACDEXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__431)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3542, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDEXT, __pyx_t_7) < 0) __PYX_ERR(4, 3542, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":36 - * __ARRAY_TYPES.append(pandas.Series) - * __PANDAS_DATAFRAME = pandas.DataFrame - * __PANDAS_SERIES = pandas.Series # <<<<<<<<<<<<<< - * except ImportError as import_error: - * try: + /* "talib/_stream.pxi":3584 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MACDFIX(real[, signalperiod=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_pandas); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_Series); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, __pyx_t_6) < 0) __PYX_ERR(1, 36, __pyx_L19_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3584, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":31 + /* "talib/_stream.pxi":3582 + * return outmacd , outmacdsignal , outmacdhist * - * # allow use of pandas.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import pandas - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MACDFIX( np.ndarray real not None , int signalperiod=-2**31 ): */ - } - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - goto __pyx_L24_try_end; - __pyx_L19_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(4, 3582, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_569stream_MACDFIX, 0, __pyx_n_s_stream_MACDFIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__433)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3582, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MACDFIX, __pyx_t_7) < 0) __PYX_ERR(4, 3582, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":37 - * __PANDAS_DATAFRAME = pandas.DataFrame - * __PANDAS_SERIES = pandas.Series - * except ImportError as import_error: # <<<<<<<<<<<<<< - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': + /* "talib/_stream.pxi":3619 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): # <<<<<<<<<<<<<< + * """ MAMA(real[, fastlimit=?, slowlimit=?]) + * */ - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_6, &__pyx_t_18, &__pyx_t_2) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_18) < 0) __PYX_ERR(1, 37, __pyx_L21_except_error) + __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3619, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* "talib/_abstract.pxi":38 - * __PANDAS_SERIES = pandas.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":3617 + * return outmacd , outmacdsignal , outmacdhist + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAMA( np.ndarray real not None , double fastlimit=-4e37 , double slowlimit=-4e37 ): */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_27); - __Pyx_XGOTREF(__pyx_t_28); - /*try:*/ { + __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_7)) __PYX_ERR(4, 3617, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_4)) __PYX_ERR(4, 3617, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_571stream_MAMA, 0, __pyx_n_s_stream_MAMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__435)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3617, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_2); + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAMA, __pyx_t_4) < 0) __PYX_ERR(4, 3617, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_abstract.pxi":39 - * except ImportError as import_error: - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< - * # Propagate the error when the module exists but failed to be imported. - * raise import_error + /* "talib/_stream.pxi":3652 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ MAVP(real, periods[, minperiod=?, maxperiod=?, matype=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_30 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_30 == ((int)-1))) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_31 = (!__pyx_t_30); - if (!__pyx_t_31) { - } else { - __pyx_t_29 = __pyx_t_31; - goto __pyx_L36_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_31 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_pandas, Py_NE)); if (unlikely((__pyx_t_31 < 0))) __PYX_ERR(1, 39, __pyx_L27_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_29 = __pyx_t_31; - __pyx_L36_bool_binop_done:; - if (unlikely(__pyx_t_29)) { + __pyx_t_4 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 3652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 3652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3652, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":41 - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': - * # Propagate the error when the module exists but failed to be imported. - * raise import_error # <<<<<<<<<<<<<< - * # `ModuleNotFoundError` was introduced in Python 3.6. - * except NameError: + /* "talib/_stream.pxi":3650 + * return outmama , outfama + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAVP( np.ndarray real not None , np.ndarray periods not None , int minperiod=-2**31 , int maxperiod=-2**31 , int matype=0 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 41, __pyx_L27_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_Raise(__pyx_t_14, 0, 0, 0); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __PYX_ERR(1, 41, __pyx_L27_error) + __pyx_t_14 = PyTuple_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4)) __PYX_ERR(4, 3650, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_2)) __PYX_ERR(4, 3650, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 2, __pyx_t_7)) __PYX_ERR(4, 3650, __pyx_L1_error); + __pyx_t_4 = 0; + __pyx_t_2 = 0; + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_573stream_MAVP, 0, __pyx_n_s_stream_MAVP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__437)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3650, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAVP, __pyx_t_7) < 0) __PYX_ERR(4, 3650, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":39 - * except ImportError as import_error: - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': # <<<<<<<<<<<<<< - * # Propagate the error when the module exists but failed to be imported. - * raise import_error + /* "talib/_stream.pxi":3687 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAX(real[, timeperiod=?]) + * */ - } + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3687, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":38 - * __PANDAS_SERIES = pandas.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":3685 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAX( np.ndarray real not None , int timeperiod=-2**31 ): */ - } - __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; - goto __pyx_L34_try_end; - __pyx_L27_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __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; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3685, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_575stream_MAX, 0, __pyx_n_s_stream_MAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__438)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3685, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAX, __pyx_t_7) < 0) __PYX_ERR(4, 3685, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":43 - * raise import_error - * # `ModuleNotFoundError` was introduced in Python 3.6. - * except NameError: # <<<<<<<<<<<<<< - * pass + /* "talib/_stream.pxi":3716 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MAXINDEX(real[, timeperiod=?]) * */ - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); - if (__pyx_t_22) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L28_exception_handled; - } - goto __pyx_L29_except_error; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3716, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":38 - * __PANDAS_SERIES = pandas.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'pandas': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":3714 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_L29_except_error:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); - goto __pyx_L21_except_error; - __pyx_L28_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_ExceptionReset(__pyx_t_26, __pyx_t_27, __pyx_t_28); - __pyx_L34_try_end:; - } + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3714, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_577stream_MAXINDEX, 0, __pyx_n_s_stream_MAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__440)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3714, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3714, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":46 - * pass + /* "talib/_stream.pxi":3743 + * return outinteger * - * __PANDAS_DATAFRAME = None # <<<<<<<<<<<<<< - * __PANDAS_SERIES = None + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MEDPRICE( np.ndarray high not None , np.ndarray low not None ): + */ + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_579stream_MEDPRICE, 0, __pyx_n_s_stream_MEDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__442)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3743, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MEDPRICE, __pyx_t_7) < 0) __PYX_ERR(4, 3743, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_stream.pxi":3775 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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=?]) * */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 46, __pyx_L21_except_error) + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3775, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":47 + /* "talib/_stream.pxi":3773 + * return outreal * - * __PANDAS_DATAFRAME = None - * __PANDAS_SERIES = None # <<<<<<<<<<<<<< + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3773, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_581stream_MFI, 0, __pyx_n_s_stream_MFI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__444)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3773, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MFI, __pyx_t_7) < 0) __PYX_ERR(4, 3773, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_stream.pxi":3813 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIDPOINT(real[, timeperiod=?]) * - * # allow use of polars.DataFrame for input arrays */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_PANDAS_SERIES, Py_None) < 0) __PYX_ERR(1, 47, __pyx_L21_except_error) - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L20_exception_handled; - } - goto __pyx_L21_except_error; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3813, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":31 + /* "talib/_stream.pxi":3811 + * return outreal * - * # allow use of pandas.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import pandas - * __INPUT_ARRAYS_TYPES.append(pandas.DataFrame) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPOINT( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_L21_except_error:; - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); - goto __pyx_L1_error; - __pyx_L20_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_ExceptionReset(__pyx_t_24, __pyx_t_23, __pyx_t_1); - __pyx_L24_try_end:; - } + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3811, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_583stream_MIDPOINT, 0, __pyx_n_s_stream_MIDPOINT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__445)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3811, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPOINT, __pyx_t_7) < 0) __PYX_ERR(4, 3811, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":50 + /* "talib/_stream.pxi":3842 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIDPRICE(high, low[, timeperiod=?]) * - * # allow use of polars.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import polars - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_1, &__pyx_t_23, &__pyx_t_24); - __Pyx_XGOTREF(__pyx_t_1); - __Pyx_XGOTREF(__pyx_t_23); - __Pyx_XGOTREF(__pyx_t_24); - /*try:*/ { + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3842, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":51 - * # allow use of polars.DataFrame for input arrays - * try: - * import polars # <<<<<<<<<<<<<< - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) - * __ARRAY_TYPES.append(polars.Series) + /* "talib/_stream.pxi":3840 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIDPRICE( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_ImportDottedModuleRelFirst(__pyx_n_s_polars, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 51, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_polars, __pyx_t_2) < 0) __PYX_ERR(1, 51, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3840, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_585stream_MIDPRICE, 0, __pyx_n_s_stream_MIDPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__446)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3840, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIDPRICE, __pyx_t_7) < 0) __PYX_ERR(4, 3840, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":52 - * try: - * import polars - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) # <<<<<<<<<<<<<< - * __ARRAY_TYPES.append(polars.Series) - * __POLARS_DATAFRAME = polars.DataFrame + /* "talib/_stream.pxi":3874 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MIN(real[, timeperiod=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_t_6); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 52, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3874, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":53 - * import polars - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) - * __ARRAY_TYPES.append(polars.Series) # <<<<<<<<<<<<<< - * __POLARS_DATAFRAME = polars.DataFrame - * __POLARS_SERIES = polars.Series + /* "talib/_stream.pxi":3872 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MIN( np.ndarray real not None , int timeperiod=-2**31 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_polars); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_25 = __Pyx_PyObject_Append(__pyx_t_6, __pyx_t_18); if (unlikely(__pyx_t_25 == ((int)-1))) __PYX_ERR(1, 53, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3872, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_587stream_MIN, 0, __pyx_n_s_stream_MIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__447)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3872, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MIN, __pyx_t_7) < 0) __PYX_ERR(4, 3872, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":54 - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) - * __ARRAY_TYPES.append(polars.Series) - * __POLARS_DATAFRAME = polars.DataFrame # <<<<<<<<<<<<<< - * __POLARS_SERIES = polars.Series - * except ImportError as import_error: + /* "talib/_stream.pxi":3903 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MININDEX(real[, timeperiod=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_polars); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_DataFrame); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, __pyx_t_6) < 0) __PYX_ERR(1, 54, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":55 - * __ARRAY_TYPES.append(polars.Series) - * __POLARS_DATAFRAME = polars.DataFrame - * __POLARS_SERIES = polars.Series # <<<<<<<<<<<<<< - * except ImportError as import_error: - * try: + /* "talib/_stream.pxi":3901 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MININDEX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_polars); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_Series); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_GOTREF(__pyx_t_18); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, __pyx_t_18) < 0) __PYX_ERR(1, 55, __pyx_L38_error) - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3901, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_589stream_MININDEX, 0, __pyx_n_s_stream_MININDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__448)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3901, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MININDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3901, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":50 + /* "talib/_stream.pxi":3932 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAX(real[, timeperiod=?]) * - * # allow use of polars.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import polars - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) */ - } - __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0; - __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0; - __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0; - goto __pyx_L43_try_end; - __pyx_L38_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 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_3); __pyx_t_3 = 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_XDECREF(__pyx_t_8); __pyx_t_8 = 0; - __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":56 - * __POLARS_DATAFRAME = polars.DataFrame - * __POLARS_SERIES = polars.Series - * except ImportError as import_error: # <<<<<<<<<<<<<< - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': + /* "talib/_stream.pxi":3930 + * return outinteger + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_ImportError); - if (__pyx_t_22) { - __Pyx_AddTraceback("talib._ta_lib", __pyx_clineno, __pyx_lineno, __pyx_filename); - if (__Pyx_GetException(&__pyx_t_18, &__pyx_t_6, &__pyx_t_2) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) - __Pyx_XGOTREF(__pyx_t_18); - __Pyx_XGOTREF(__pyx_t_6); - __Pyx_XGOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_import_error, __pyx_t_6) < 0) __PYX_ERR(1, 56, __pyx_L40_except_error) + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3930, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_591stream_MINMAX, 0, __pyx_n_s_stream_MINMAX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__450)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3930, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAX, __pyx_t_7) < 0) __PYX_ERR(4, 3930, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":57 - * __POLARS_SERIES = polars.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":3964 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINMAXINDEX(real[, timeperiod=?]) + * */ - { - __Pyx_PyThreadState_declare - __Pyx_PyThreadState_assign - __Pyx_ExceptionSave(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26); - __Pyx_XGOTREF(__pyx_t_28); - __Pyx_XGOTREF(__pyx_t_27); - __Pyx_XGOTREF(__pyx_t_26); - /*try:*/ { + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3964, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":58 - * except ImportError as import_error: - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< - * # Propagate the error when the module exists but failed to be imported. - * raise import_error + /* "talib/_stream.pxi":3962 + * return outmin , outmax + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINMAXINDEX( np.ndarray real not None , int timeperiod=-2**31 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_ModuleNotFoundError); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_31 = PyObject_IsInstance(__pyx_t_14, __pyx_t_3); if (unlikely(__pyx_t_31 == ((int)-1))) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_30 = (!__pyx_t_31); - if (!__pyx_t_30) { - } else { - __pyx_t_29 = __pyx_t_30; - goto __pyx_L55_bool_binop_done; - } - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_import_error); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_30 = (__Pyx_PyString_Equals(__pyx_t_14, __pyx_n_s_polars, Py_NE)); if (unlikely((__pyx_t_30 < 0))) __PYX_ERR(1, 58, __pyx_L46_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __pyx_t_29 = __pyx_t_30; - __pyx_L55_bool_binop_done:; - if (unlikely(__pyx_t_29)) { + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3962, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_593stream_MINMAXINDEX, 0, __pyx_n_s_stream_MINMAXINDEX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__452)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3962, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINMAXINDEX, __pyx_t_7) < 0) __PYX_ERR(4, 3962, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":60 - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': - * # Propagate the error when the module exists but failed to be imported. - * raise import_error # <<<<<<<<<<<<<< - * # `ModuleNotFoundError` was introduced in Python 3.6. - * except NameError: + /* "talib/_stream.pxi":3996 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DI(high, low, close[, timeperiod=?]) + * */ - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_import_error); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 60, __pyx_L46_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_Raise(__pyx_t_14, 0, 0, 0); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - __PYX_ERR(1, 60, __pyx_L46_error) + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":58 - * except ImportError as import_error: - * try: - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': # <<<<<<<<<<<<<< - * # Propagate the error when the module exists but failed to be imported. - * raise import_error + /* "talib/_stream.pxi":3994 + * return outminidx , outmaxidx + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - } + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 3994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 3994, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_595stream_MINUS_DI, 0, __pyx_n_s_stream_MINUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__453)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 3994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 3994, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":57 - * __POLARS_SERIES = polars.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":4031 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MINUS_DM(high, low[, timeperiod=?]) + * */ - } - __Pyx_XDECREF(__pyx_t_28); __pyx_t_28 = 0; - __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0; - __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0; - goto __pyx_L53_try_end; - __pyx_L46_error:; - __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 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; - __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0; - __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0; - __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 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_XDECREF(__pyx_t_5); __pyx_t_5 = 0; - __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; + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4031, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":62 - * raise import_error - * # `ModuleNotFoundError` was introduced in Python 3.6. - * except NameError: # <<<<<<<<<<<<<< - * pass + /* "talib/_stream.pxi":4029 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MINUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): */ - __pyx_t_22 = __Pyx_PyErr_ExceptionMatches(__pyx_builtin_NameError); - if (__pyx_t_22) { - __Pyx_ErrRestore(0,0,0); - goto __pyx_L47_exception_handled; - } - goto __pyx_L48_except_error; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4029, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_597stream_MINUS_DM, 0, __pyx_n_s_stream_MINUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__454)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4029, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MINUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4029, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":57 - * __POLARS_SERIES = polars.Series - * except ImportError as import_error: - * try: # <<<<<<<<<<<<<< - * if not isinstance(import_error, ModuleNotFoundError) or import_error.name != 'polars': - * # Propagate the error when the module exists but failed to be imported. + /* "talib/_stream.pxi":4063 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ MOM(real[, timeperiod=?]) + * */ - __pyx_L48_except_error:; - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); - goto __pyx_L40_except_error; - __pyx_L47_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_28); - __Pyx_XGIVEREF(__pyx_t_27); - __Pyx_XGIVEREF(__pyx_t_26); - __Pyx_ExceptionReset(__pyx_t_28, __pyx_t_27, __pyx_t_26); - __pyx_L53_try_end:; - } + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4063, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); - /* "talib/_abstract.pxi":65 - * pass + /* "talib/_stream.pxi":4061 + * return outreal * - * __POLARS_DATAFRAME = None # <<<<<<<<<<<<<< - * __POLARS_SERIES = None + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MOM( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4061, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_599stream_MOM, 0, __pyx_n_s_stream_MOM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__455)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4061, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MOM, __pyx_t_7) < 0) __PYX_ERR(4, 4061, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_stream.pxi":4090 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_MULT( np.ndarray real0 not None , np.ndarray real1 not None ): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_DATAFRAME, Py_None) < 0) __PYX_ERR(1, 65, __pyx_L40_except_error) + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_601stream_MULT, 0, __pyx_n_s_stream_MULT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__456)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4090, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_MULT, __pyx_t_7) < 0) __PYX_ERR(4, 4090, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":66 + /* "talib/_stream.pxi":4123 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ NATR(high, low, close[, timeperiod=?]) * - * __POLARS_DATAFRAME = None - * __POLARS_SERIES = None # <<<<<<<<<<<<<< + */ + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4123, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "talib/_stream.pxi":4121 + * return outreal * - * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_NATR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - if (PyDict_SetItem(__pyx_d, __pyx_n_s_POLARS_SERIES, Py_None) < 0) __PYX_ERR(1, 66, __pyx_L40_except_error) - __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0; - goto __pyx_L39_exception_handled; - } - goto __pyx_L40_except_error; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4121, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_603stream_NATR, 0, __pyx_n_s_stream_NATR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__457)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4121, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_NATR, __pyx_t_7) < 0) __PYX_ERR(4, 4121, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":50 + /* "talib/_stream.pxi":4156 + * return outreal * - * # allow use of polars.DataFrame for input arrays - * try: # <<<<<<<<<<<<<< - * import polars - * __INPUT_ARRAYS_TYPES.append(polars.DataFrame) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_OBV( np.ndarray real not None , np.ndarray volume not None ): */ - __pyx_L40_except_error:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - goto __pyx_L1_error; - __pyx_L39_exception_handled:; - __Pyx_XGIVEREF(__pyx_t_1); - __Pyx_XGIVEREF(__pyx_t_23); - __Pyx_XGIVEREF(__pyx_t_24); - __Pyx_ExceptionReset(__pyx_t_1, __pyx_t_23, __pyx_t_24); - __pyx_L43_try_end:; - } + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_605stream_OBV, 0, __pyx_n_s_stream_OBV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__459)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4156, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_OBV, __pyx_t_7) < 0) __PYX_ERR(4, 4156, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":68 - * __POLARS_SERIES = None + /* "talib/_stream.pxi":4189 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DI(high, low, close[, timeperiod=?]) * - * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) # <<<<<<<<<<<<<< - * __ARRAY_TYPES = tuple(__ARRAY_TYPES) + */ + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4189, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "talib/_stream.pxi":4187 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DI( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_INPUT_ARRAYS_TYPES); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PySequence_Tuple(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_INPUT_ARRAYS_TYPES, __pyx_t_6) < 0) __PYX_ERR(1, 68, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4187, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_607stream_PLUS_DI, 0, __pyx_n_s_stream_PLUS_DI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__460)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DI, __pyx_t_7) < 0) __PYX_ERR(4, 4187, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - /* "talib/_abstract.pxi":69 + /* "talib/_stream.pxi":4224 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ PLUS_DM(high, low[, timeperiod=?]) * - * __INPUT_ARRAYS_TYPES = tuple(__INPUT_ARRAYS_TYPES) - * __ARRAY_TYPES = tuple(__ARRAY_TYPES) # <<<<<<<<<<<<<< + */ + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4224, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + + /* "talib/_stream.pxi":4222 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PLUS_DM( np.ndarray high not None , np.ndarray low not None , int timeperiod=-2**31 ): + */ + __pyx_t_14 = PyTuple_New(1); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_7)) __PYX_ERR(4, 4222, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_609stream_PLUS_DM, 0, __pyx_n_s_stream_PLUS_DM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__461)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_t_14); + __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_PLUS_DM, __pyx_t_7) < 0) __PYX_ERR(4, 4222, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + + /* "talib/_stream.pxi":4256 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): # <<<<<<<<<<<<<< + * """ PPO(real[, fastperiod=?, slowperiod=?, matype=?]) * */ - __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_ARRAY_TYPES); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_2 = __Pyx_PySequence_Tuple(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 69, __pyx_L1_error) + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_14 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4256, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_14); + __pyx_t_2 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4256, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ARRAY_TYPES, __pyx_t_2) < 0) __PYX_ERR(1, 69, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":72 - * - * - * if sys.version >= '3': # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":4254 + * return outreal * - * def str2bytes(s): + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_PPO( np.ndarray real not None , int fastperiod=-2**31 , int slowperiod=-2**31 , int matype=0 ): */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_sys); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4254, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7)) __PYX_ERR(4, 4254, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_14); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_14)) __PYX_ERR(4, 4254, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_2)) __PYX_ERR(4, 4254, __pyx_L1_error); + __pyx_t_7 = 0; + __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_611stream_PPO, 0, __pyx_n_s_stream_PPO, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__462)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4254, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_version); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_kp_s_3, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 72, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely((__pyx_t_29 < 0))) __PYX_ERR(1, 72, __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_d, __pyx_n_s_stream_PPO, __pyx_t_2) < 0) __PYX_ERR(4, 4254, __pyx_L1_error) __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - if (__pyx_t_29) { - /* "talib/_abstract.pxi":74 - * if sys.version >= '3': - * - * def str2bytes(s): # <<<<<<<<<<<<<< - * return bytes(s, 'ascii') + /* "talib/_stream.pxi":4287 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROC(real[, timeperiod=?]) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_335str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__242)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 74, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4287, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - /* "talib/_abstract.pxi":77 - * return bytes(s, 'ascii') - * - * def bytes2str(b): # <<<<<<<<<<<<<< - * return b.decode('ascii') + /* "talib/_stream.pxi":4285 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROC( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_337bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__244)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 77, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4285, __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)) __PYX_ERR(4, 4285, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_613stream_ROC, 0, __pyx_n_s_stream_ROC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__463)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4285, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROC, __pyx_t_2) < 0) __PYX_ERR(4, 4285, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":72 - * - * - * if sys.version >= '3': # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":4316 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCP(real[, timeperiod=?]) * - * def str2bytes(s): */ - goto __pyx_L57; - } + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4316, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - /* "talib/_abstract.pxi":82 - * else: - * - * def str2bytes(s): # <<<<<<<<<<<<<< - * return s + /* "talib/_stream.pxi":4314 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCP( np.ndarray real not None , int timeperiod=-2**31 ): */ - /*else*/ { - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_339str2bytes, 0, __pyx_n_s_str2bytes, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__245)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_str2bytes, __pyx_t_2) < 0) __PYX_ERR(1, 82, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4314, __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)) __PYX_ERR(4, 4314, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_615stream_ROCP, 0, __pyx_n_s_stream_ROCP, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__464)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4314, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCP, __pyx_t_2) < 0) __PYX_ERR(4, 4314, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":85 - * return s - * - * def bytes2str(b): # <<<<<<<<<<<<<< - * return b + /* "talib/_stream.pxi":4345 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR(real[, timeperiod=?]) * */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_341bytes2str, 0, __pyx_n_s_bytes2str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__246)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 85, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_bytes2str, __pyx_t_2) < 0) __PYX_ERR(1, 85, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - } - __pyx_L57:; + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4345, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - /* "talib/_abstract.pxi":88 - * return b + /* "talib/_stream.pxi":4343 + * return outreal * - * class Function(object): # <<<<<<<<<<<<<< - * """ - * This is a pythonic wrapper around TALIB's abstract interface. It is + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_PEP560_update_bases(__pyx_tuple__248); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 88, __pyx_L1_error) + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4343, __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)) __PYX_ERR(4, 4343, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_617stream_ROCR, 0, __pyx_n_s_stream_ROCR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__465)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4343, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = __Pyx_CalculateMetaclass(NULL, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __pyx_t_18 = __Pyx_Py3MetaclassPrepare(__pyx_t_6, __pyx_t_2, __pyx_n_s_Function, __pyx_n_s_Function, (PyObject *) NULL, __pyx_n_s_talib__ta_lib, __pyx_kp_s_This_is_a_pythonic_wrapper_arou); if (unlikely(!__pyx_t_18)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_18); - if (__pyx_t_2 != __pyx_tuple__248) { - if (unlikely((PyDict_SetItemString(__pyx_t_18, "__orig_bases__", __pyx_tuple__248) < 0))) __PYX_ERR(1, 88, __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_d, __pyx_n_s_stream_ROCR, __pyx_t_2) < 0) __PYX_ERR(4, 4343, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":117 - * """ + /* "talib/_stream.pxi":4374 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ ROCR100(real[, timeperiod=?]) * - * def __init__(self, function_name, func_object, *args, **kwargs): # <<<<<<<<<<<<<< - * # make sure the function_name is valid and define all of our variables - * self.__name = function_name.upper() */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_1__init__, 0, __pyx_n_s_Function___init, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__250)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_init, __pyx_t_14) < 0) __PYX_ERR(1, 117, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4374, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - /* "talib/_abstract.pxi":130 - * self.func_object = func_object + /* "talib/_stream.pxi":4372 + * return outreal * - * @property # <<<<<<<<<<<<<< - * def __local(self): - * local = self.__localdata + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ROCR100( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_3__local, 0, __pyx_n_s_Function___local, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__252)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__local, __pyx_t_3) < 0) __PYX_ERR(1, 130, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4372, __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)) __PYX_ERR(4, 4372, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_619stream_ROCR100, 0, __pyx_n_s_stream_ROCR100, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__466)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4372, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ROCR100, __pyx_t_2) < 0) __PYX_ERR(4, 4372, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":172 - * return local + /* "talib/_stream.pxi":4403 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ RSI(real[, timeperiod=?]) * - * @property # <<<<<<<<<<<<<< - * def info(self): - * """ */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_5info, 0, __pyx_n_s_Function_info, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__253)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_info, __pyx_t_14) < 0) __PYX_ERR(1, 172, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_2 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4403, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); - /* "talib/_abstract.pxi":179 - * return self.__local.info.copy() + /* "talib/_stream.pxi":4401 + * return outreal * - * @property # <<<<<<<<<<<<<< - * def function_flags(self): - * """ + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_RSI( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_7function_flags, 0, __pyx_n_s_Function_function_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__254)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_function_flags, __pyx_t_3) < 0) __PYX_ERR(1, 179, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4401, __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)) __PYX_ERR(4, 4401, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_621stream_RSI, 0, __pyx_n_s_stream_RSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__467)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4401, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_t_4); + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_RSI, __pyx_t_2) < 0) __PYX_ERR(4, 4401, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":186 - * return self.__local.info['function_flags'] + /* "talib/_stream.pxi":4432 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): # <<<<<<<<<<<<<< + * """ SAR(high, low[, acceleration=?, maximum=?]) * - * @property # <<<<<<<<<<<<<< - * def output_flags(self): - * """ */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_9output_flags, 0, __pyx_n_s_Function_output_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__255)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_flags, __pyx_t_14) < 0) __PYX_ERR(1, 186, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_2 = PyFloat_FromDouble(((double)0.02)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_4 = PyFloat_FromDouble(((double)0.2)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4432, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); - /* "talib/_abstract.pxi":193 - * return self.__local.info['output_flags'].copy() + /* "talib/_stream.pxi":4430 + * return outreal * - * def get_input_names(self): # <<<<<<<<<<<<<< - * """ - * Returns the dict of input price series names that specifies which + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAR( np.ndarray high not None , np.ndarray low not None , double acceleration=0.02 , double maximum=0.2 ): */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_11get_input_names, 0, __pyx_n_s_Function_get_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__257)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 193, __pyx_L1_error) + __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4430, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 193, __pyx_L1_error) + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2)) __PYX_ERR(4, 4430, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_4)) __PYX_ERR(4, 4430, __pyx_L1_error); + __pyx_t_2 = 0; + __pyx_t_4 = 0; + __pyx_t_4 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_623stream_SAR, 0, __pyx_n_s_stream_SAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__469)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4430, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_14); __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAR, __pyx_t_4) < 0) __PYX_ERR(4, 4430, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0; - /* "talib/_abstract.pxi":204 - * return ret + /* "talib/_stream.pxi":4465 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): # <<<<<<<<<<<<<< + * """ SAREXT(high, low[, startvalue=?, offsetonreverse=?, accelerationinitlong=?, accelerationlong=?, accelerationmaxlong=?, accelerationinitshort=?, accelerationshort=?, accelerationmaxshort=?]) * - * def set_input_names(self, input_names): # <<<<<<<<<<<<<< - * """ - * Sets the input price series names to use. */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_13set_input_names, 0, __pyx_n_s_Function_set_input_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__259)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 204, __pyx_L1_error) + __pyx_t_4 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_4)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_4); + __pyx_t_14 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 4465, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_names, __pyx_t_14) < 0) __PYX_ERR(1, 204, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_2 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_2); + __pyx_t_7 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_18 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_3 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4465, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); - /* "talib/_abstract.pxi":214 - * local.outputs_valid = False - * - * input_names = property(get_input_names, set_input_names) # <<<<<<<<<<<<<< + /* "talib/_stream.pxi":4463 + * return outreal * - * def get_input_arrays(self): + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SAREXT( np.ndarray high not None , np.ndarray low not None , double startvalue=-4e37 , double offsetonreverse=-4e37 , double accelerationinitlong=-4e37 , double accelerationlong=-4e37 , double accelerationmaxlong=-4e37 , double accelerationinitshort=-4e37 , double accelerationshort=-4e37 , double accelerationmaxshort=-4e37 ): */ - __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_names); - if (unlikely(!__pyx_t_14)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_get_input_names); - } - if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_names); - if (unlikely(!__pyx_t_3)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_set_input_names); - } - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); + __pyx_t_19 = PyTuple_New(8); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_4); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_4)) __PYX_ERR(4, 4463, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_14)) __PYX_ERR(1, 214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 1, __pyx_t_14)) __PYX_ERR(4, 4463, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_2); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 2, __pyx_t_2)) __PYX_ERR(4, 4463, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 3, __pyx_t_7)) __PYX_ERR(4, 4463, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 4, __pyx_t_18)) __PYX_ERR(4, 4463, __pyx_L1_error); __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 5, __pyx_t_3)) __PYX_ERR(4, 4463, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 6, __pyx_t_6)) __PYX_ERR(4, 4463, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 7, __pyx_t_15)) __PYX_ERR(4, 4463, __pyx_L1_error); + __pyx_t_4 = 0; __pyx_t_14 = 0; + __pyx_t_2 = 0; + __pyx_t_7 = 0; + __pyx_t_18 = 0; __pyx_t_3 = 0; - __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_7, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_names, __pyx_t_3) < 0) __PYX_ERR(1, 214, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_625stream_SAREXT, 0, __pyx_n_s_stream_SAREXT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__471)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4463, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SAREXT, __pyx_t_15) < 0) __PYX_ERR(4, 4463, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":216 - * input_names = property(get_input_names, set_input_names) + /* "talib/_stream.pxi":4502 + * return outreal * - * def get_input_arrays(self): # <<<<<<<<<<<<<< - * """ - * Returns a copy of the dict of input arrays in use. + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SIN( np.ndarray real not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_15get_input_arrays, 0, __pyx_n_s_Function_get_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__261)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 216, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_627stream_SIN, 0, __pyx_n_s_stream_SIN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__472)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4502, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SIN, __pyx_t_15) < 0) __PYX_ERR(4, 4502, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":227 - * return local.input_arrays.copy() + /* "talib/_stream.pxi":4529 + * return outreal * - * def set_input_arrays(self, input_arrays): # <<<<<<<<<<<<<< - * """ - * Sets the dict of input_arrays to use. Returns True/False for + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SINH( np.ndarray real not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_17set_input_arrays, 0, __pyx_n_s_Function_set_input_arrays, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__263)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_input_arrays, __pyx_t_3) < 0) __PYX_ERR(1, 227, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_629stream_SINH, 0, __pyx_n_s_stream_SINH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__473)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4529, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SINH, __pyx_t_15) < 0) __PYX_ERR(4, 4529, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":274 - * return False + /* "talib/_stream.pxi":4558 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ SMA(real[, timeperiod=?]) * - * input_arrays = property(get_input_arrays, set_input_arrays) # <<<<<<<<<<<<<< + */ + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4558, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + + /* "talib/_stream.pxi":4556 + * return outreal * - * def get_parameters(self): + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SMA( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_3 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_input_arrays); - if (unlikely(!__pyx_t_3)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_get_input_arrays); - } - if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_input_arrays); - if (unlikely(!__pyx_t_7)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_set_input_arrays); - } - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_GIVEREF(__pyx_t_3); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3)) __PYX_ERR(1, 274, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error); - __pyx_t_3 = 0; - __pyx_t_7 = 0; - __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_input_arrays, __pyx_t_7) < 0) __PYX_ERR(1, 274, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_19 = PyTuple_New(1); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_15)) __PYX_ERR(4, 4556, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_631stream_SMA, 0, __pyx_n_s_stream_SMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__474)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4556, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_19); + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SMA, __pyx_t_15) < 0) __PYX_ERR(4, 4556, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":276 - * input_arrays = property(get_input_arrays, set_input_arrays) + /* "talib/_stream.pxi":4585 + * return outreal * - * def get_parameters(self): # <<<<<<<<<<<<<< - * """ - * Returns the function's optional parameters and their default values. + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SQRT( np.ndarray real not None ): */ - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_19get_parameters, 0, __pyx_n_s_Function_get_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__265)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_get_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 276, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_633stream_SQRT, 0, __pyx_n_s_stream_SQRT, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__475)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4585, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SQRT, __pyx_t_15) < 0) __PYX_ERR(4, 4585, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":286 - * return ret + /* "talib/_stream.pxi":4614 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): # <<<<<<<<<<<<<< + * """ STDDEV(real[, timeperiod=?, nbdev=?]) * - * def set_parameters(self, parameters=None, **kwargs): # <<<<<<<<<<<<<< - * """ - * Sets the function parameter values. */ - __pyx_t_7 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_21set_parameters, 0, __pyx_n_s_Function_set_parameters, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__267)); if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_7, __pyx_tuple__268); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_parameters, __pyx_t_7) < 0) __PYX_ERR(1, 286, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_19 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4614, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); - /* "talib/_abstract.pxi":299 - * local.info['parameters'] = self.parameters + /* "talib/_stream.pxi":4612 + * return outreal * - * parameters = property(get_parameters, set_parameters) # <<<<<<<<<<<<<< + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STDDEV( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): + */ + __pyx_t_6 = PyTuple_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_15)) __PYX_ERR(4, 4612, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_19)) __PYX_ERR(4, 4612, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_19 = 0; + __pyx_t_19 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_635stream_STDDEV, 0, __pyx_n_s_stream_STDDEV, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__477)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4612, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_19, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STDDEV, __pyx_t_19) < 0) __PYX_ERR(4, 4612, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0; + + /* "talib/_stream.pxi":4644 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 set_function_args(self, *args, **kwargs): */ - __pyx_t_7 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_get_parameters); - if (unlikely(!__pyx_t_7)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_get_parameters); - } - if (unlikely(!__pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_7); - __pyx_t_14 = PyObject_GetItem(__pyx_t_18, __pyx_n_s_set_parameters); - if (unlikely(!__pyx_t_14)) { - PyErr_Clear(); - __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_set_parameters); - } - if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 299, __pyx_L1_error) + __pyx_t_19 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_19)) __PYX_ERR(4, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_19); + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_15 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4644, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_GIVEREF(__pyx_t_7); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7)) __PYX_ERR(1, 299, __pyx_L1_error); - __Pyx_GIVEREF(__pyx_t_14); - if (__Pyx_PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error); - __pyx_t_7 = 0; - __pyx_t_14 = 0; - __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_property, __pyx_t_3, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_parameters, __pyx_t_14) < 0) __PYX_ERR(1, 299, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4644, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + + /* "talib/_stream.pxi":4642 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): + */ + __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_19); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19)) __PYX_ERR(4, 4642, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6)) __PYX_ERR(4, 4642, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_15)) __PYX_ERR(4, 4642, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_3)) __PYX_ERR(4, 4642, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_18)) __PYX_ERR(4, 4642, __pyx_L1_error); + __pyx_t_19 = 0; + __pyx_t_6 = 0; + __pyx_t_15 = 0; + __pyx_t_3 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_637stream_STOCH, 0, __pyx_n_s_stream_STOCH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__479)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4642, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCH, __pyx_t_18) < 0) __PYX_ERR(4, 4642, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_abstract.pxi":301 - * parameters = property(get_parameters, set_parameters) + /* "talib/_stream.pxi":4686 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 set_function_args(self, *args, **kwargs): # <<<<<<<<<<<<<< - * """ - * optional args:[input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs] */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_23set_function_args, 0, __pyx_n_s_Function_set_function_args, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__270)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_set_function_args, __pyx_t_14) < 0) __PYX_ERR(1, 301, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_3 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4686, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); - /* "talib/_abstract.pxi":336 - * local.outputs_valid = False + /* "talib/_stream.pxi":4684 + * return outslowk , outslowd * - * @property # <<<<<<<<<<<<<< - * def lookback(self): - * """ + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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 ): */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_25lookback, 0, __pyx_n_s_Function_lookback, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__272)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 336, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 336, __pyx_L1_error) + __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4684, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_18)) __PYX_ERR(4, 4684, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_7)) __PYX_ERR(4, 4684, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_3); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_3)) __PYX_ERR(4, 4684, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_7 = 0; + __pyx_t_3 = 0; + __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_639stream_STOCHF, 0, __pyx_n_s_stream_STOCHF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__481)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4684, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_lookback, __pyx_t_3) < 0) __PYX_ERR(1, 336, __pyx_L1_error) + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHF, __pyx_t_3) < 0) __PYX_ERR(4, 4684, __pyx_L1_error) __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - /* "talib/_abstract.pxi":357 - * return lookback + /* "talib/_stream.pxi":4726 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_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=?]) * - * @property # <<<<<<<<<<<<<< - * def output_names(self): - * """ */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_27output_names, 0, __pyx_n_s_Function_output_names, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__274)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 357, __pyx_L1_error) + __pyx_t_3 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 4726, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_3); - __pyx_t_14 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_3); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_output_names, __pyx_t_14) < 0) __PYX_ERR(1, 357, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 4726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)0)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4726, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - /* "talib/_abstract.pxi":367 - * return ret + /* "talib/_stream.pxi":4724 + * return outfastk , outfastd * - * @property # <<<<<<<<<<<<<< - * def outputs(self): - * """ + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_STOCHRSI( np.ndarray real not None , int timeperiod=-2**31 , int fastk_period=-2**31 , int fastd_period=-2**31 , int fastd_matype=0 ): */ - __pyx_t_14 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_29outputs, 0, __pyx_n_s_Function_outputs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__276)); if (unlikely(!__pyx_t_14)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); - __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_property, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_outputs, __pyx_t_3) < 0) __PYX_ERR(1, 367, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = PyTuple_New(4); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4724, __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)) __PYX_ERR(4, 4724, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_15)) __PYX_ERR(4, 4724, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_7)) __PYX_ERR(4, 4724, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_18)) __PYX_ERR(4, 4724, __pyx_L1_error); + __pyx_t_3 = 0; + __pyx_t_15 = 0; + __pyx_t_7 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_641stream_STOCHRSI, 0, __pyx_n_s_stream_STOCHRSI, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__483)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4724, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_STOCHRSI, __pyx_t_18) < 0) __PYX_ERR(4, 4724, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_abstract.pxi":399 - * return ret[0] if len(ret) == 1 else ret + /* "talib/_stream.pxi":4759 + * return outfastk , outfastd * - * def run(self, input_arrays=None): # <<<<<<<<<<<<<< - * """ - * run([input_arrays=None]) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUB( np.ndarray real0 not None , np.ndarray real1 not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_31run, 0, __pyx_n_s_Function_run, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__278)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_tuple__268); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_run, __pyx_t_3) < 0) __PYX_ERR(1, 399, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_643stream_SUB, 0, __pyx_n_s_stream_SUB, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__484)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4759, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUB, __pyx_t_18) < 0) __PYX_ERR(4, 4759, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_abstract.pxi":411 - * return self.outputs + /* "talib/_stream.pxi":4792 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ SUM(real[, timeperiod=?]) * - * def __call__(self, *args, **kwargs): # <<<<<<<<<<<<<< - * """ - * func_instance([input_arrays,] [parameter_args,] [input_price_series_kwargs,] [parameter_kwargs]) */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_33__call__, 0, __pyx_n_s_Function___call, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__280)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_call, __pyx_t_3) < 0) __PYX_ERR(1, 411, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4792, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - /* "talib/_abstract.pxi":477 + /* "talib/_stream.pxi":4790 + * return outreal * - * # figure out which price series names we're using for inputs - * def __input_price_series_names(self): # <<<<<<<<<<<<<< - * local = self.__local - * input_price_series_names = [] + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_SUM( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_35__input_price_series_names, 0, __pyx_n_s_Function___input_price_series_na, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__282)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__input_price_series_na, __pyx_t_3) < 0) __PYX_ERR(1, 477, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = PyTuple_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_18)) __PYX_ERR(4, 4790, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_645stream_SUM, 0, __pyx_n_s_stream_SUM, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__485)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_6); + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_SUM, __pyx_t_18) < 0) __PYX_ERR(4, 4790, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_abstract.pxi":489 - * return input_price_series_names + /* "talib/_stream.pxi":4821 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): # <<<<<<<<<<<<<< + * """ T3(real[, timeperiod=?, vfactor=?]) * - * def __call_function(self): # <<<<<<<<<<<<<< - * local = self.__local - * input_price_series_names = self.__input_price_series_names() */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_37__call_function, 0, __pyx_n_s_Function___call_function, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__284)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__call_function, __pyx_t_3) < 0) __PYX_ERR(1, 489, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 4821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_6 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4821, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":520 - * local.outputs_valid = True + /* "talib/_stream.pxi":4819 + * return outreal * - * def __check_opt_input_value(self, input_name, value): # <<<<<<<<<<<<<< - * type_ = self.__local.opt_inputs[input_name]['type'] - * if type_ in {lib.TA_OptInput_IntegerList, lib.TA_OptInput_IntegerRange}: + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_T3( np.ndarray real not None , int timeperiod=-2**31 , double vfactor=-4e37 ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_39__check_opt_input_value, 0, __pyx_n_s_Function___check_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__286)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__check_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 520, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18)) __PYX_ERR(4, 4819, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_6)) __PYX_ERR(4, 4819, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_647stream_T3, 0, __pyx_n_s_stream_T3, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__487)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4819, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_T3, __pyx_t_6) < 0) __PYX_ERR(4, 4819, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":535 - * return False + /* "talib/_stream.pxi":4849 + * return outreal * - * def __get_opt_input_value(self, input_name): # <<<<<<<<<<<<<< - * """ - * Returns the user-set value if there is one, otherwise the default. + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TAN( np.ndarray real not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_41__get_opt_input_value, 0, __pyx_n_s_Function___get_opt_input_value, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__288)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_Function__get_opt_input_value, __pyx_t_3) < 0) __PYX_ERR(1, 535, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_649stream_TAN, 0, __pyx_n_s_stream_TAN, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__488)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4849, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TAN, __pyx_t_6) < 0) __PYX_ERR(4, 4849, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":545 - * return value + /* "talib/_stream.pxi":4876 + * return outreal * - * def __repr__(self): # <<<<<<<<<<<<<< - * return '%s' % self.info + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TANH( np.ndarray real not None ): + */ + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_651stream_TANH, 0, __pyx_n_s_stream_TANH, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__489)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4876, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TANH, __pyx_t_6) < 0) __PYX_ERR(4, 4876, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":4905 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TEMA(real[, timeperiod=?]) * */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_43__repr__, 0, __pyx_n_s_Function___repr, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__289)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 545, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_repr, __pyx_t_3) < 0) __PYX_ERR(1, 545, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4905, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":548 - * return '%s' % self.info + /* "talib/_stream.pxi":4903 + * return outreal * - * def __unicode__(self): # <<<<<<<<<<<<<< - * return unicode(self.__str__()) + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TEMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4903, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_653stream_TEMA, 0, __pyx_n_s_stream_TEMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__490)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4903, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TEMA, __pyx_t_6) < 0) __PYX_ERR(4, 4903, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; + + /* "talib/_stream.pxi":4932 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRANGE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_45__unicode__, 0, __pyx_n_s_Function___unicode, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__290)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 548, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_unicode, __pyx_t_3) < 0) __PYX_ERR(1, 548, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_655stream_TRANGE, 0, __pyx_n_s_stream_TRANGE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__492)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4932, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRANGE, __pyx_t_6) < 0) __PYX_ERR(4, 4932, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":551 - * return unicode(self.__str__()) + /* "talib/_stream.pxi":4967 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIMA(real[, timeperiod=?]) * - * def __str__(self): # <<<<<<<<<<<<<< - * return _get_defaults_and_docs(self.info)[1] # docstring includes defaults + */ + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4967, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":4965 + * return outreal * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIMA( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_3 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_8Function_47__str__, 0, __pyx_n_s_Function___str, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__291)); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 551, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (__Pyx_SetNameInClass(__pyx_t_18, __pyx_n_s_str, __pyx_t_3) < 0) __PYX_ERR(1, 551, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4965, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_657stream_TRIMA, 0, __pyx_n_s_stream_TRIMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__493)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4965, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIMA, __pyx_t_6) < 0) __PYX_ERR(4, 4965, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":88 - * return b + /* "talib/_stream.pxi":4996 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TRIX(real[, timeperiod=?]) * - * class Function(object): # <<<<<<<<<<<<<< - * """ - * This is a pythonic wrapper around TALIB's abstract interface. It is */ - __pyx_t_3 = __Pyx_Py3ClassCreate(__pyx_t_6, __pyx_n_s_Function, __pyx_t_2, __pyx_t_18, NULL, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_Function, __pyx_t_3) < 0) __PYX_ERR(1, 88, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4996, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + + /* "talib/_stream.pxi":4994 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TRIX( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 4994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 4994, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_659stream_TRIX, 0, __pyx_n_s_stream_TRIX, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__494)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 4994, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TRIX, __pyx_t_6) < 0) __PYX_ERR(4, 4994, __pyx_L1_error) __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; - /* "talib/_abstract.pxi":565 - * # therefore recommended over using these functions directly. + /* "talib/_stream.pxi":5025 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ TSF(real[, timeperiod=?]) * - * def _ta_getGroupTable(): # <<<<<<<<<<<<<< - * """ - * Returns the list of available TALIB function group names. *slow* */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_343_ta_getGroupTable, 0, __pyx_n_s_ta_getGroupTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__293)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getGroupTable, __pyx_t_2) < 0) __PYX_ERR(1, 565, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5025, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); - /* "talib/_abstract.pxi":577 - * return groups + /* "talib/_stream.pxi":5023 + * return outreal * - * def _ta_getFuncTable(char *group): # <<<<<<<<<<<<<< - * """ - * Returns a list of the functions for the specified group name. *slow* + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TSF( np.ndarray real not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_345_ta_getFuncTable, 0, __pyx_n_s_ta_getFuncTable, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__295)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncTable, __pyx_t_2) < 0) __PYX_ERR(1, 577, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6)) __PYX_ERR(4, 5023, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_661stream_TSF, 0, __pyx_n_s_stream_TSF, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__495)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5023, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_6, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TSF, __pyx_t_6) < 0) __PYX_ERR(4, 5023, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":589 - * return functions + /* "talib/_stream.pxi":5052 + * return outreal * - * def __get_flags(int flag, dict flags_lookup_dict): # <<<<<<<<<<<<<< - * """ - * TA-LIB provides hints for multiple flags as a bitwise-ORed int. + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_TYPPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_347__get_flags, 0, __pyx_n_s_get_flags, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__297)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_flags, __pyx_t_2) < 0) __PYX_ERR(1, 589, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_663stream_TYPPRICE, 0, __pyx_n_s_stream_TYPPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__496)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5052, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_TYPPRICE, __pyx_t_6) < 0) __PYX_ERR(4, 5052, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - /* "talib/_abstract.pxi":615 + /* "talib/_stream.pxi":5087 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): # <<<<<<<<<<<<<< + * """ ULTOSC(high, low, close[, timeperiod1=?, timeperiod2=?, timeperiod3=?]) * - * TA_FUNC_FLAGS = { - * 16777216: 'Output scale same as input', # <<<<<<<<<<<<<< - * 67108864: 'Output is over volume', - * 134217728: 'Function has an unstable period', */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 615, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16777216, __pyx_kp_s_Output_scale_same_as_input) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_67108864, __pyx_kp_s_Output_is_over_volume) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_134217728, __pyx_kp_s_Function_has_an_unstable_period) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_268435456, __pyx_kp_s_Output_is_a_candlestick) < 0) __PYX_ERR(1, 615, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_FUNC_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 614, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_6 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 5087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_7 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5087, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); - /* "talib/_abstract.pxi":623 - * # when flag is 0, the function (should) work on any reasonable input ndarray - * TA_INPUT_FLAGS = { - * 1: 'open', # <<<<<<<<<<<<<< - * 2: 'high', - * 4: 'low', + /* "talib/_stream.pxi":5085 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_ULTOSC( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod1=-2**31 , int timeperiod2=-2**31 , int timeperiod3=-2**31 ): */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(7); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 623, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_open) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_n_s_high) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_n_s_low) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_close) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_volume) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_n_s_openInterest) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_n_s_timeStamp) < 0) __PYX_ERR(1, 623, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_INPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 622, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_15 = PyTuple_New(3); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_GIVEREF(__pyx_t_6); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_6)) __PYX_ERR(4, 5085, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_7); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_7)) __PYX_ERR(4, 5085, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_15, 2, __pyx_t_18)) __PYX_ERR(4, 5085, __pyx_L1_error); + __pyx_t_6 = 0; + __pyx_t_7 = 0; + __pyx_t_18 = 0; + __pyx_t_18 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_665stream_ULTOSC, 0, __pyx_n_s_stream_ULTOSC, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__498)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5085, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_18, __pyx_t_15); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_ULTOSC, __pyx_t_18) < 0) __PYX_ERR(4, 5085, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - /* "talib/_abstract.pxi":633 + /* "talib/_stream.pxi":5124 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): # <<<<<<<<<<<<<< + * """ VAR(real[, timeperiod=?, nbdev=?]) * - * TA_OUTPUT_FLAGS = { - * 1: 'Line', # <<<<<<<<<<<<<< - * 2: 'Dotted Line', - * 4: 'Dashed Line', */ - __pyx_t_2 = __Pyx_PyDict_NewPresized(13); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 633, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1, __pyx_n_s_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2, __pyx_kp_s_Dotted_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4, __pyx_kp_s_Dashed_Line) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_8, __pyx_n_s_Dot) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_16, __pyx_n_s_Histogram) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_32, __pyx_kp_s_Pattern_Bool) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_64, __pyx_kp_s_Bull_Bear_Pattern_Bearish_0_Neut) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_128, __pyx_kp_s_Strength_Pattern_200_100_Bearish) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_256, __pyx_kp_s_Output_can_be_positive) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_512, __pyx_kp_s_Output_can_be_negative) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_1024, __pyx_kp_s_Output_can_be_zero) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_2048, __pyx_kp_s_Values_represent_an_upper_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_t_2, __pyx_int_4096, __pyx_kp_s_Values_represent_a_lower_limit) < 0) __PYX_ERR(1, 633, __pyx_L1_error) - if (PyDict_SetItem(__pyx_d, __pyx_n_s_TA_OUTPUT_FLAGS, __pyx_t_2) < 0) __PYX_ERR(1, 632, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_18 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 5124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_18); + __pyx_t_15 = PyFloat_FromDouble(((double)-4e37)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5124, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); - /* "talib/_abstract.pxi":648 - * } + /* "talib/_stream.pxi":5122 + * return outreal * - * def _ta_getFuncInfo(char *function_name): # <<<<<<<<<<<<<< - * """ - * Returns the info dict for the function. It has the following keys: name, + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_VAR( np.ndarray real not None , int timeperiod=-2**31 , double nbdev=-4e37 ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_349_ta_getFuncInfo, 0, __pyx_n_s_ta_getFuncInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__299)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getFuncInfo, __pyx_t_2) < 0) __PYX_ERR(1, 648, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_18); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18)) __PYX_ERR(4, 5122, __pyx_L1_error); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_15)) __PYX_ERR(4, 5122, __pyx_L1_error); + __pyx_t_18 = 0; + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_667stream_VAR, 0, __pyx_n_s_stream_VAR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__499)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5122, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_VAR, __pyx_t_15) < 0) __PYX_ERR(4, 5122, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":667 - * } + /* "talib/_stream.pxi":5152 + * return outreal * - * def _ta_getInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's input info dict for the given index. It has two + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WCLPRICE( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_351_ta_getInputParameterInfo, 0, __pyx_n_s_ta_getInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__301)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 667, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_669stream_WCLPRICE, 0, __pyx_n_s_stream_WCLPRICE, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__500)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5152, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WCLPRICE, __pyx_t_15) < 0) __PYX_ERR(4, 5152, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":688 - * } + /* "talib/_stream.pxi":5187 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WILLR(high, low, close[, timeperiod=?]) * - * def _ta_getOptInputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's opt_input info dict for the given index. It has the */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_353_ta_getOptInputParameterInfo, 0, __pyx_n_s_ta_getOptInputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__303)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOptInputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 688, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5187, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); - /* "talib/_abstract.pxi":712 - * } + /* "talib/_stream.pxi":5185 + * return outreal * - * def _ta_getOutputParameterInfo(char *function_name, int idx): # <<<<<<<<<<<<<< - * """ - * Returns the function's output info dict for the given index. It has two + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WILLR( np.ndarray high not None , np.ndarray low not None , np.ndarray close not None , int timeperiod=-2**31 ): */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_355_ta_getOutputParameterInfo, 0, __pyx_n_s_ta_getOutputParameterInfo, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__304)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 712, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_ta_getOutputParameterInfo, __pyx_t_2) < 0) __PYX_ERR(1, 712, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15)) __PYX_ERR(4, 5185, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_671stream_WILLR, 0, __pyx_n_s_stream_WILLR, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__501)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5185, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WILLR, __pyx_t_15) < 0) __PYX_ERR(4, 5185, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; - /* "talib/_abstract.pxi":732 - * } + /* "talib/_stream.pxi":5222 + * @wraparound(False) # turn off relative indexing from end of lists + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): # <<<<<<<<<<<<<< + * """ WMA(real[, timeperiod=?]) * - * def _get_defaults_and_docs(func_info): # <<<<<<<<<<<<<< - * """ - * Returns a tuple with two outputs: defaults, a dict of parameter defaults, */ - __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_357_get_defaults_and_docs, 0, __pyx_n_s_get_defaults_and_docs, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__306)); if (unlikely(!__pyx_t_2)) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_get_defaults_and_docs, __pyx_t_2) < 0) __PYX_ERR(1, 732, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; + __pyx_t_15 = __Pyx_PyInt_From_int(((int)-2147483648)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5222, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + + /* "talib/_stream.pxi":5220 + * return outreal + * + * @wraparound(False) # turn off relative indexing from end of lists # <<<<<<<<<<<<<< + * @boundscheck(False) # turn off bounds-checking for entire function + * def stream_WMA( np.ndarray real not None , int timeperiod=-2**31 ): + */ + __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(4, 5220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GIVEREF(__pyx_t_15); + if (__Pyx_PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_15)) __PYX_ERR(4, 5220, __pyx_L1_error); + __pyx_t_15 = 0; + __pyx_t_15 = __Pyx_CyFunction_New(&__pyx_mdef_5talib_7_ta_lib_673stream_WMA, 0, __pyx_n_s_stream_WMA, NULL, __pyx_n_s_talib__ta_lib, __pyx_d, ((PyObject *)__pyx_codeobj__502)); if (unlikely(!__pyx_t_15)) __PYX_ERR(4, 5220, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_15, __pyx_t_7); + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_stream_WMA, __pyx_t_15) < 0) __PYX_ERR(4, 5220, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; /* "talib/_ta_lib.pyx":6 * include "_stream.pxi" * * __all__ = __TA_FUNCTION_NAMES__ + ["stream_%s" % name for name in __TA_FUNCTION_NAMES__] # <<<<<<<<<<<<<< */ - __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_2)) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_2); - __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_6); - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_15)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_15); + __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_7); + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_TA_FUNCTION_NAMES); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) { - __pyx_t_3 = __pyx_t_18; __Pyx_INCREF(__pyx_t_3); + __pyx_t_6 = __pyx_t_18; __Pyx_INCREF(__pyx_t_6); __pyx_t_17 = 0; __pyx_t_32 = NULL; } else { - __pyx_t_17 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __pyx_t_32 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_3); if (unlikely(!__pyx_t_32)) __PYX_ERR(4, 6, __pyx_L1_error) + __pyx_t_17 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __pyx_t_32 = __Pyx_PyObject_GetIterNextFunc(__pyx_t_6); if (unlikely(!__pyx_t_32)) __PYX_ERR(5, 6, __pyx_L1_error) } __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; for (;;) { if (likely(!__pyx_t_32)) { - if (likely(PyList_CheckExact(__pyx_t_3))) { + if (likely(PyList_CheckExact(__pyx_t_6))) { { - Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyList_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 6, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 6, __pyx_L1_error) #endif if (__pyx_t_17 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_18 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(4, 6, __pyx_L1_error) + __pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(5, 6, __pyx_L1_error) #else - __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) + __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } else { { - Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_3); + Py_ssize_t __pyx_temp = __Pyx_PyTuple_GET_SIZE(__pyx_t_6); #if !CYTHON_ASSUME_SAFE_MACROS - if (unlikely((__pyx_temp < 0))) __PYX_ERR(4, 6, __pyx_L1_error) + if (unlikely((__pyx_temp < 0))) __PYX_ERR(5, 6, __pyx_L1_error) #endif if (__pyx_t_17 >= __pyx_temp) break; } #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS - __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(4, 6, __pyx_L1_error) + __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_17); __Pyx_INCREF(__pyx_t_18); __pyx_t_17++; if (unlikely((0 < 0))) __PYX_ERR(5, 6, __pyx_L1_error) #else - __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_3, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) + __pyx_t_18 = __Pyx_PySequence_ITEM(__pyx_t_6, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); #endif } } else { - __pyx_t_18 = __pyx_t_32(__pyx_t_3); + __pyx_t_18 = __pyx_t_32(__pyx_t_6); if (unlikely(!__pyx_t_18)) { PyObject* exc_type = PyErr_Occurred(); if (exc_type) { if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear(); - else __PYX_ERR(4, 6, __pyx_L1_error) + else __PYX_ERR(5, 6, __pyx_L1_error) } break; } __Pyx_GOTREF(__pyx_t_18); } - if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_18) < 0) __PYX_ERR(4, 6, __pyx_L1_error) + if (PyDict_SetItem(__pyx_d, __pyx_n_s_name, __pyx_t_18) < 0) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(4, 6, __pyx_L1_error) + __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(5, 6, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_18); - __pyx_t_14 = __Pyx_PyString_FormatSafe(__pyx_kp_s_stream__s, __pyx_t_18); if (unlikely(!__pyx_t_14)) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_14); + __pyx_t_3 = __Pyx_PyString_FormatSafe(__pyx_kp_s_stream__s, __pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_3); __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0; - if (unlikely(__Pyx_ListComp_Append(__pyx_t_6, (PyObject*)__pyx_t_14))) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0; + if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_3))) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; } - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; - __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0; __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; - if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_3) < 0) __PYX_ERR(4, 6, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = PyNumber_Add(__pyx_t_15, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0; + __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0; + if (PyDict_SetItem(__pyx_d, __pyx_n_s_all, __pyx_t_6) < 0) __PYX_ERR(5, 6, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /* "talib/_ta_lib.pyx":1 * include "_common.pxi" # <<<<<<<<<<<<<< * include "_func.pxi" * include "_abstract.pxi" */ - __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(4, 1, __pyx_L1_error) - __Pyx_GOTREF(__pyx_t_3); - if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(4, 1, __pyx_L1_error) - __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0; + __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(5, 1, __pyx_L1_error) + __Pyx_GOTREF(__pyx_t_6); + if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_6) < 0) __PYX_ERR(5, 1, __pyx_L1_error) + __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0; /*--- Wrapped vars code ---*/ @@ -94350,7 +148120,7 @@ __Pyx_PyType_GetName(PyTypeObject* tp) if (unlikely(name == NULL) || unlikely(!PyUnicode_Check(name))) { PyErr_Clear(); Py_XDECREF(name); - name = __Pyx_NewRef(__pyx_n_s__307); + name = __Pyx_NewRef(__pyx_n_s__503); } return name; } From a49cdc91981ab1d960e1df01be18a1e8c4161c49 Mon Sep 17 00:00:00 2001 From: LiJia Date: Thu, 12 Dec 2024 09:13:05 +0800 Subject: [PATCH 6/6] restore to NPY_1_6 API --- setup.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.py b/setup.py index 43433af56..c3a33ecef 100644 --- a/setup.py +++ b/setup.py @@ -140,7 +140,7 @@ def build_extensions(self): Extension( 'talib._ta_lib', ['talib/_ta_lib.pyx' if has_cython else 'talib/_ta_lib.c'], - define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')], + #define_macros=[('NPY_NO_DEPRECATED_API', 'NPY_1_7_API_VERSION')], include_dirs=include_dirs, library_dirs=library_dirs, libraries=[lib_talib_name] if len(lib_talib_name) > 0 else [],